long long
我有一个接受参数的 c 程序。当我尝试将这个 long 转换为它的二进制表示时,结果证明都是错误的。但是如果我设置一个long long
等于参数值的long long
变量,那么我得到正确的二进制表示。
int main(int argv, long long value)
{
long long i = value; // value = 2
long long e = 2;
printBits(sizeof(e), &e); // 0000000000000000000000000000000000000000000000000000000000000010
printBits(sizeof(i), &i); // 0000000000000000011111111111110000010000111010101110101000001000
return 0;
}
因此,您可以在上面看到通过控制台检索到的参数,因为输入与应有的值相差甚远。
printBits() 是此解决方案的复制粘贴。
有人可以澄清发生了什么吗?