鱼C论坛

 找回密码
 立即注册
查看: 2230|回复: 8

字符运算问题

[复制链接]
发表于 2016-3-23 16:09:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么int a=-1,转换成long int 变成65535?求指教~!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-3-23 17:04:46 | 显示全部楼层
编译环境不同吧
无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-23 17:29:24 | 显示全部楼层
如果你的是16位编译器的话
int占2字节,范围为-32768~32767
long int占4字节,范围为-2147483648~2147483647
int强制转换为long int时
int=-1内存的二进制就是long int=65535内存的二进制

你去看一下原码 补码 反码 吧

32位编译器
int 和long均占4字节,范围均为-2147483648~2147483647
所以强制转换也不会变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2016-3-23 20:08:44 | 显示全部楼层
夜雨de街灯 发表于 2016-3-23 17:29
如果你的是16位编译器的话
int占2字节,范围为-32768~32767
long int占4字节,范围为-2147483648~2147483 ...

这个怎么解释?

无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-23 23:44:43 | 显示全部楼层

什么怎么解释

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位编译器很正常吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-24 17:25:37 | 显示全部楼层

这个
无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-25 00:12:50 | 显示全部楼层

计算机就是这样解析

有图有真相

有图有真相
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-25 00:19:10 | 显示全部楼层

再详细一点就是这样

有图有真相

有图有真相

评分

参与人数 1荣誉 +3 鱼币 +5 收起 理由
~风介~ + 3 + 5 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-25 18:36:56 | 显示全部楼层
夜雨de街灯 发表于 2016-3-25 00:19
再详细一点就是这样

恩,好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 22:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表