按位与操作符&
33&65的结果是1
33的二进制:100001
65的二进制:1000001
由于按位与的操作要右对齐,且是8位
所以33:00100001 前面补齐了两个0
所以55:01000001 前面补齐一个0
结果-----------------------
00000001 装换位十进制为1
所以33&65的结果是1问题:
我这样补齐的根据是什么?
33和65是32位整数 装换成二进制是不是应该这样:
33装换为二进制:00000000 000000000 00000000 00100001
65转换为二进制:00000000 000000000 00000000 01000001
结果为:--------------------------------------------
00000000 00000000 00000000 00000001到底是怎么计算得来的这个最终结果1啊? 希望高手指点一下。
33&65的结果是1
33的二进制:100001
65的二进制:1000001
由于按位与的操作要右对齐,且是8位
所以33:00100001 前面补齐了两个0
所以55:01000001 前面补齐一个0
结果-----------------------
00000001 装换位十进制为1
所以33&65的结果是1问题:
我这样补齐的根据是什么?
33和65是32位整数 装换成二进制是不是应该这样:
33装换为二进制:00000000 000000000 00000000 00100001
65转换为二进制:00000000 000000000 00000000 01000001
结果为:--------------------------------------------
00000000 00000000 00000000 00000001到底是怎么计算得来的这个最终结果1啊? 希望高手指点一下。
65转换为二进制:00000000 000000000 00000000 01000001
结果为:--------------------------------------------
00000000 00000000 00000000 00000001
=======================<<<<======
从右到左每一位对应的进行与操作
0& 0 = 0
0 & 1 = 0
1 & 1 = 1
然后不就是结果了么?
上下两种方式其实是一样的。上面只是按需补齐,即将短一点的通过在前面加0补成与长一点的位数一样。
下面的则是不管37=21都补到32位,反正int也不会超过32位。
当两个数字都转换成了长度一样的二进制后,按位与。
Understand?
而不是在前面加那么多的0
还有int32 是32位的 占用的资源是不是就是32位呢?
33,65在它看来都是32位的如果是int型。
就是同一则一了.
计组,,,,
楼主的疑惑是在这里LemIST 已经回答了:cpu处理还是按照他的类型来的,32位就按32位的处理。
33,65在它看来都是32位的如果是int型。