标题: C语言16进制移位怎么算? [打印本页]

作者: zhangzhao2423    时间: 2021-11-23 15:45
标题: C语言16进制移位怎么算?

如图,假如CH0_SenData=Mod5_Work();而Mod5_Work()的值等于255,那么它右移一位的值是多少,怎么运算的?
CH0_SenData=(CH0_SenData>>1)就是这个程序。

作者: Hephaestus    时间: 2021-11-23 16:17
255的二进制11111111
右移1111111
是多少自己算。
作者: zhangzhao2423    时间: 2021-11-23 16:43
Hephaestus 发表于 2021-11-23 16:17
255的二进制11111111
右移1111111
是多少自己算。

7F是吧
作者: 1226933189    时间: 2021-11-23 16:47
9FA8C = 9×164 + 15×163 + 10×162 + 8×161 + 12×160 = 653964(十进制)。

从右往左看,第1位的位权为 160=1,第2位的位权为 161=16,第3位的位权为 162=256,第4位的位权为 163=4096,第5位的位权为 164=65536 …… 第n位的位权就为 16n-1。

将各个位的数字乘以位权,然后再相加,就得到了十进制形式。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1