栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

按位运算符结果如何发生?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

按位运算符结果如何发生?

3&5:

00110101----- AND0001 == 1

3 | 5:

00110101----- OR0111 == 7

Java中的否定定义为二进制补码(非常常见)。
这样

-x = ~x + 1 = ~(x - 1)

8&-8:

00001000 //811111000 //-8-------- AND00001000 // 8

使用否定的最后定义,-1首先借用所有最右边的零(如果有的话),随便设置它们,直到它达到1,然后将其重置,左边的任何内容都保持不变。补码然后恢复最右边的零和最右边的零(所有这些都有效地由-1进行了补全),并对所有最右边的零的左边进行补全:

00001000 // 800000111 // 8 - 1 = 711111000 // -8

请注意,如果您使用8位数字,则-8仅为11111000。如果您有更多的位,那么左边将有更多的1。如果只有4位,则会遇到某种麻烦,因为-8的表示形式与8相同,因此-8(在4位数学中)是一个自己的负数(如零)。

实际上,8不是一个很好的例子,因为它太简单了。让我们做

100 & -100
(一百个,而不是四个):

01100100 // 10001100011 // 9910011100 // -100

现在和100:

01100100 // 10010011100 // -100-------- AND00000100 // 4

通常,

x & -x
隔离最右边的1。最右边的零而不是最右边的1都不会受到否定的影响,因此,仅对那部分数字而言,这就像您在做的那样
x &x
(这当然是
x
)。上部,最右边一个的左侧,是互补的,因此您拥有1的任何地方都变为0,而拥有1的任何地方都变为0
0 & 1 = 0



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/455498.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号