为什么C++中这条运算会等于128
答案:6 悬赏:30 手机版
解决时间 2021-04-05 10:32
- 提问者网友:夢醒日落
- 2021-04-05 06:38
为什么C++中这条运算会等于128
最佳答案
- 五星知识达人网友:旧脸谱
- 2021-04-05 07:22
您好。这涉及到进制转换,还有移位问题。
0x40换成二进制表示就是0100 0000(0100等于4)。
a<<1的意思是,把0100 0000集体向左移1位,即得到了1000 0000,在十进制表示上该二进制值等于128。
谢谢,请采纳!
与楼上类似,左移就是乘以2,右移就表示除以2。在用程序表示乘以2的N次方上面应用广泛。追问1000 0000怎么等于128,我算不到,一直都是等于0追答
纯手工计算的。如果是程序的话,可能要考虑格式了,还有变量是不是存储的时候溢出了。
0x40换成二进制表示就是0100 0000(0100等于4)。
a<<1的意思是,把0100 0000集体向左移1位,即得到了1000 0000,在十进制表示上该二进制值等于128。
谢谢,请采纳!
与楼上类似,左移就是乘以2,右移就表示除以2。在用程序表示乘以2的N次方上面应用广泛。追问1000 0000怎么等于128,我算不到,一直都是等于0追答
纯手工计算的。如果是程序的话,可能要考虑格式了,还有变量是不是存储的时候溢出了。
全部回答
- 1楼网友:英雄的欲望
- 2021-04-05 11:47
a=0x40表示的是16进制,所以a=64,<< 表示将a的2进制表示左移以为,相当于将a乘以2,所以结果为128
- 2楼网友:爱难随人意
- 2021-04-05 10:56
a 为64 a<<1表示 移位 左移相当 于 *2 所以 b = 128
- 3楼网友:逃夭
- 2021-04-05 10:28
0x40 二进制为 01000000
左移1位 10000000 -------->十进制128
左移1位 10000000 -------->十进制128
- 4楼网友:三千妖杀
- 2021-04-05 09:06
a = 0100 0000 (二进制)
a<<1 左移操作
a就成了1000 0000表示十进制的128
a<<1 左移操作
a就成了1000 0000表示十进制的128
- 5楼网友:执傲
- 2021-04-05 08:34
二进制位 1 << 1 左移1位变成 10
所以左移n位,一般理解为将原来的值扩大 2^n次方。
0x40 << 1 即将0x40扩大2^1 = 2倍
所以b的值变成了0x80 = 128
我是菜鸟,希望能帮到你,观楼主英俊潇洒,风流倜傥,必当世豪杰,诚邀加入0x30百度贴吧,共商义举,建不世之功
所以左移n位,一般理解为将原来的值扩大 2^n次方。
0x40 << 1 即将0x40扩大2^1 = 2倍
所以b的值变成了0x80 = 128
我是菜鸟,希望能帮到你,观楼主英俊潇洒,风流倜傥,必当世豪杰,诚邀加入0x30百度贴吧,共商义举,建不世之功
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯