| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2542 人关注过本帖
标题:int与unsigned相加
只看楼主 加入收藏
zhddragon
Rank: 5Rank: 5
等 级:职业侠客
帖 子:208
专家分:346
注 册:2009-5-14
收藏
得分:0 
回复 18楼 BlueGuy
因为你用的机器cpu是小端存储(应该是x86的),你如果用一台大端的存储的会得到跟int一样的结果。

身体是玩命的本钱
2010-06-10 00:23
zhddragon
Rank: 5Rank: 5
等 级:职业侠客
帖 子:208
专家分:346
注 册:2009-5-14
收藏
得分:0 
回复 14楼 广陵绝唱
我觉得它问的是i+j这个表达式的值,c里每个表达式都会有一个值,在这里i+j这个表达式的值就是无符号型。

而且对加法和减法运算来说有符号型和无符号型没有任何区别(用的都是同一个指令,底层不对他们区分),它只对跳转指令有意义(乘和除除外)。

身体是玩命的本钱
2010-06-10 00:30
zhddragon
Rank: 5Rank: 5
等 级:职业侠客
帖 子:208
专家分:346
注 册:2009-5-14
收藏
得分:0 
以下是引用zhddragon在2010-6-10 00:23:36的发言:

因为你用的机器cpu是小端存储(应该是x86的),你如果用一台大端的存储的会得到跟int一样的结果。
抱歉。没看清楚就发言了。

那个-1跟255通过那样的转换后结果不同是因为你把char 强制转换成int后字节数变大了,所以编译器会对那个数进行符号扩展,那多出来的高位全变成1了,而unsigned char的时候进行的是零扩展,多出来的为全是0

另外那个readInt函数的确是存在着大小端问题。

身体是玩命的本钱
2010-06-10 00:58
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 23楼 zhddragon
微机原理学的不好, 现在想重新拾起了。

我就是真命天子,顺我者生,逆我者死!
2010-06-10 08:56
快速回复:int与unsigned相加
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016255 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved