99问答网
所有问题
c语言中 0x38循环左移二位 怎么计算?
如题所述
举报该问题
推荐答案 2020-04-23
C语言中没有循环移位,只有移位。
就是遇到边界时,会被截断的,例如11110000左移2位就是11000000
当然,你这里的0x38,循环左移2位,和左移2位没什么区别,因为边界值都是0,但是像刚刚的11110000的循环左移和左移2位,就相差很大了。
如果你需要循环的话,可以这样使用:
a=0x38;
b=a>>6;
a=a<<2;
a=b|a;
a这个时候就是循环左移了两位。
如果需要左移而已,就如三楼所说。
还有,就像3楼说的,左移相当于乘,数会变大,右移相当于除,变小。具体如下:
左移N位,就相当于原来的值乘以2的N次幂;
右移N位,如果非负数的话,就是原来的值除以2的N次幂。
希望对你有用。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/BjtetttzBjOeWeeOtB.html
其他回答
第1个回答 2020-04-25
你好!
二楼说反了,说的是右移。
0x38=0b00111000
,“0x”是表示这个数是十六进制的意思,“0b”对应是
二进制
。
记住,左移相当于乘,数会变大,右移相当于除,变小。
0x38左移二位后变成0b11100000,即0xE0
我的回答你还满意吗~~本回答被提问者采纳
第2个回答 2020-04-23
0x38
既
0011
1000
左移两位就是左边加两个0
右边截断
00
0011
10
00
最后就是
00
00
11
10
相似回答
大家正在搜
相关问题
C语言编程是什么?
c语言编程怎样入门
什么是C语言程序设计?
什么C语言编程软件适合初学者
c语言编程软件有哪些??
C语言是什么意思?
怎么用c语言编程?
用c语言编程?