问个c的问题

[复制链接]
5442|25
 楼主| huangchui 发表于 2011-9-21 17:19 | 显示全部楼层 |阅读模式
a | (b << 8)
其中a和b都是8bit的类型,假设a是1,b是1,得到结果是多少
zhanghqi 发表于 2011-9-21 17:22 | 显示全部楼层
a是1的话就不会执行b << 8了
所以a 和 b都还是1
结果也是1
 楼主| huangchui 发表于 2011-9-21 17:29 | 显示全部楼层
我是想问,b是8位,然后再向左移8位,会不会出问题
dengdc 发表于 2011-9-21 17:33 | 显示全部楼层
…………
看错了
吧|看成||了
heweibig 发表于 2011-9-21 17:34 | 显示全部楼层
VC++6.0,测试输出1
在RedHat里测试输出1
两者都定义为unsigned char型。
wuhany 发表于 2011-9-21 17:36 | 显示全部楼层
b << 8结果是0,不论b的值是多少。
lizye 发表于 2011-9-21 17:36 | 显示全部楼层
b << 8结果是0,与b值无关。

a | 0 = a;

即结果为a (即a=1).
jiahy 发表于 2011-9-21 17:38 | 显示全部楼层
b << 8跟所用处理器的位数有关!
shimx 发表于 2011-9-21 17:40 | 显示全部楼层
同意ls,不知道lz用的是几位的
spark周 发表于 2011-9-21 17:52 | 显示全部楼层
这么简单的问题呀,用C程序验证一下不就知道了。
zhaoxqi 发表于 2011-9-21 18:23 | 显示全部楼层
就是啊,写个程序运行下就知道了
jiajs 发表于 2011-9-21 18:27 | 显示全部楼层
(b << 8)
这样的语句会得到警告
金鱼木鱼 发表于 2011-9-21 18:36 | 显示全部楼层
得到的是a
hhhhhhgggg 发表于 2011-9-21 22:16 | 显示全部楼层
应该跟处理器的位数有关
huanben 发表于 2011-9-22 09:22 | 显示全部楼层
a,b 都是8位  还会跟处理器位数有关吗?:)
weizheng07 发表于 2011-9-22 11:08 | 显示全部楼层
根处理器没关系阿!都去验证一下,跟处理器没关系的,就是处理器是32位的,b<<8,unsigned char类型,那就是0,难道说处理器是32位的,那b就是0x00000001,怎么可能阿!
叶落无痕 发表于 2011-9-22 17:06 | 显示全部楼层
高手云集,讨论的好激烈!
tuzihog 发表于 2011-9-22 23:11 | 显示全部楼层
a是1的话就不会执行b
zhanghqi 发表于 2011-9-21 17:22

我想知道为什么a是1就不去执行b<<8了
ayb_ice 发表于 2011-9-23 16:02 | 显示全部楼层
1
结果
"   您的帖子长度不符合要求。 当前长度: 1 字节系统限制: 2 到 20000 字节"
lilihua0721 发表于 2011-9-24 13:05 | 显示全部楼层
很简单的,结果就是1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

918

主题

12323

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部