字符运算问题
为什么int a=-1,转换成long int 变成65535?求指教~! 编译环境不同吧如果你的是16位编译器的话
int占2字节,范围为-32768~32767
long int占4字节,范围为-2147483648~2147483647
int强制转换为long int时
int=-1内存的二进制就是long int=65535内存的二进制
{:10_312:}
你去看一下原码 补码 反码 吧
32位编译器
int 和long均占4字节,范围均为-2147483648~2147483647
所以强制转换也不会变
{:10_256:} 夜雨de街灯 发表于 2016-3-23 17:29
如果你的是16位编译器的话
int占2字节,范围为-32768~32767
long int占4字节,范围为-2147483648~2147483 ...
这个怎么解释?
人造人 发表于 2016-3-23 20:08
这个怎么解释?
什么怎么解释{:10_312:}
int main()
{
cout<<sizeof(char)<<endl;
cout<<sizeof(short)<<endl;
cout<<sizeof(int)<<endl;
cout<<sizeof(float)<<endl;
cout<<sizeof(long)<<endl;
cout<<sizeof(double)<<endl;
return 0;
}
结果为:
1
2
4
4
4
8
由此看出,32位系统,vc编译器中,
short占 2 字节,
int 、float、long 都占 4 字节,
只有double 占8 字节
你的是32位编译器很正常吧{:10_334:} 夜雨de街灯 发表于 2016-3-23 23:44
什么怎么解释
这个
人造人 发表于 2016-3-24 17:25
这个
计算机就是这样解析{:10_256:} 人造人 发表于 2016-3-24 17:25
这个
再详细一点就是这样{:10_242:} 夜雨de街灯 发表于 2016-3-25 00:19
再详细一点就是这样
恩,好了
页:
[1]