搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ int与unsigned相加
标题:
int与unsigned相加
只看楼主
zhddragon
等 级:
职业侠客
帖 子:208
专家分:346
注 册:2009-5-14
第
21
楼
得分:0
回复 18楼 BlueGuy
因为你用的机器cpu是小端存储(应该是x86的),你如果用一台大端的存储的会得到跟int一样的结果。
身体是玩命的本钱
2010-06-10 00:23
zhddragon
等 级:
职业侠客
帖 子:208
专家分:346
注 册:2009-5-14
第
22
楼
得分:0
回复 14楼 广陵绝唱
我觉得它问的是i+j这个表达式的值,c里每个表达式都会有一个值,在这里i+j这个表达式的值就是无符号型。
而且对加法和减法运算来说有符号型和无符号型没有任何区别(用的都是同一个指令,底层不对他们区分),它只对跳转指令有意义(乘和除除外)。
身体是玩命的本钱
2010-06-10 00:30
zhddragon
等 级:
职业侠客
帖 子:208
专家分:346
注 册:2009-5-14
第
23
楼
得分: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
等 级:
版主
威 望:
29
帖 子:4476
专家分:4055
注 册:2009-4-18
第
24
楼
得分:0
回复 23楼 zhddragon
微机原理学的不好, 现在想重新拾起了。
我就是真命天子,顺我者生,逆我者死!
2010-06-10 08:56
24
3/3页
1
2
3
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-309596-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.191316 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved