黑马程序员技术交流社区
标题:
移位问题
[打印本页]
作者:
jiangenhao
时间:
2014-4-19 10:49
标题:
移位问题
本帖最后由 jiangenhao 于 2014-4-20 22:03 编辑
int a = 4;
a<<5;
请问这时a的值是多少?
复制代码
答案 此时 a 的值 以为为 4
对a以为并不会改变a本身的值
如果想要得到结果需要定义一个变量来接受移位之后的值
如 int result = a << 5
希望大家不要犯和我一样的错误
作者:
Er01c
时间:
2014-4-19 10:56
0000 0000 0000 0000 0000 0000 0000 0100 4
0000 0000 0000 0000 0000 0000 1000 0000 左移5位 128 (4乘2的5次方)
复制代码
作者:
刘元明
时间:
2014-4-19 10:56
以64位编译器来说,int类型占4个字节,最后1个字节可以表示为0000 0100 a<<5表示向左移动5位,最后1个字节也就变为0100 0000,a的值为128
作者:
blz01003hm
时间:
2014-4-19 12:27
a的值还是4。
这样写a的值才会改变
int a=4;
a=a<<5;
作者:
杨勇
时间:
2014-4-19 15:31
把代码改成是
int a=4;
a=a<<5;
分析a的值:
4在内存中存储:0000 0000 0000 0000 0000 0000 0000 0100
移位后变成:
0000 0
000 0000 0000 0000 0000 0000 0100 00000
此时a的值为2的7次方 a=128.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2