我有一些计算正在进行并得到以下警告(即没有错误):
Warning messages:
1: In sum(myvar, na.rm = T) :
Integer overflow - use sum(as.numeric(.))
Run Code Online (Sandbox Code Playgroud)
在这个线程中,人们声明整数溢出根本不会发生.要么R不是过于现代,要么是不对.但是,我应该在这做什么?如果我使用as.numeric警告暗示我可能不会解释信息丢失的事实.myvar从.csv文件中读取,所以不应该知道需要更大的字段吗?它已经切断了什么吗?
什么是的最大长度integer或者numeric?你会建议任何其他字段类型/模式吗?
编辑:我跑:
R版本2.13.2(2011-09-30)平台:R Studio中的x86_64-apple-darwin9.8.0/x86_64(64位)
有没有人详细解释如何利用整数?我已经阅读了很多关于这个概念的内容,我理解它是什么,我理解缓冲区溢出,但我不明白如何可靠地修改内存,或者以修改应用程序流的方式,通过使一个大于它定义的记忆....
当我在PHP中计算
print (2224516644% (pow (2,16) + 1));
Run Code Online (Sandbox Code Playgroud)
结果是-5748.
在计算器中,结果是59790
为什么?我需要帮助
在互联网上,我发现了以下问题:
int a = (int)pow(2, 32);
cout << a;
Run Code Online (Sandbox Code Playgroud)
它在屏幕上打印什么?
首先我想到了0,但是在我编写代码并执行它之后,我得到了-2147483648,但为什么呢?
我也注意到了(int)(pow(2, 32) - pow(2, 31))等于-2147483648.
谁能解释为什么(int)pow(2, 32)等于-2147483648?