java核心技术3。5。10位运算符
原文
3.5.10 位运算符
处理整型类型时,还有一些运算符可以直接处理组成整数的各个位。这意味着可以使用掩码技术得到一个数中的各个位。位运算符包括:
&(and) 、 |(or) ^(xor) ~(not)
这些运算符按位模式操作。例如,如果n是一个整数变量,而且n的二进制表示中从右边数第一位是1,则
int fourthBitFromRight = (n & 0b1000) / 0b1000;
会返回1 ,否则返回0 。利用 & 并结合适当的2的幂,可以屏蔽其他位,而只留下其中的某一位。
注释:应用在布尔值上时,& 和 | 运算符也会得到一个布尔值。这些运算符与 && 和 || 运算符很类似,不过 & 和 | 运算符不采用"短路"方式来计算,也就是说,计算结果之前,两个操作数都需要计算。
另外,还有 >> 和 << 运算符可以将位模式左移或右移。需要建立位模式来完成位掩码时,这两个运算符会很方便:
int fourthBitFromRight = (n & (1 <<3) ) >>3;
最后,>>> 运算符会用0填充高位,这与 >> 不同, >>会用符号位填充高位。不存在 <<< 运算符。
警告:移位运算符的右操作要完成模32的操作(除非左操作数是long类型,在这种情况下需要完成模64运算)。例如,1 << 35的值等同于 1<< 3 或 8
C++注释:在C/C++中,不能保证 >>是完成算术移位(扩展符号位)还是逻辑移位(填充0)。实现者可以选择其中更高效的任何一种操作。这意味着C/C++中的 >> 运算符对负数生成的结果可能会依赖于具体的实现。Java则消除了这种不确定性。
个人补充
位运算在开发中应用并不多,甚至很多地方为了"照顾整个小组的水平",不建议,或者禁止使用位运算。位运算是直接操作计算机底层的二进制数,所以效率高,但可读性很差。
比如1 的二进制为 000...001 (31个0,最后是1,int 是32 位)
对1进行 << 操作也就是所有的32位都左移,最左边的就会溢出,被舍弃,而右边空出来一位,补位0,结果就是 000...0010(30个0,然后是10,也就是二进制 的10,也就是2)。
同理 1 << 3 就是整体左移3位,其结果为000...001000(28个0,然后是1000,也就是二进制 的1000,也就是8) 。
关于二进制与十进制的转换,可以使用windows的计算器。
渣女头过时了?2023仙女烫才是真的火!头条创作挑战赛离春节只有不到一个月的时间了,想着一年的工作不久即将收尾,内心还是有点小兴奋的,是时候该好好地准备下,给新的一年一个足够的仪式感仪式感的方式有很多,换个新发型就是其中
口服美容液再次兴起,新税品牌如何入场?近年来,随着颜值经济的盛行,消费者对美的需求增长,同时越来越注重绿色健康消费,美容饮品的市场需求逐渐扩大,LUMl汤臣倍健碧生源等保健品品牌纷纷加入口服美容液的赛道,今天对口服美容
香奈儿变臭奈儿,奢侈品也要蹭依托答辩的热度了?如果说2022年时尚界最会搞事的人是侃爷,那么最会整活(或被整活)的时尚品牌无疑就是香奈儿了。从上千元的奶奶款水晶凉鞋,到4万块的垃圾袋,信守奢侈品从不坑穷人的原则。原以为2022
金卡戴珊穿绿色V领橡胶衣勾勒凹凸感金卡戴珊作为超级网红,她的一举一动都在媒体的关注下。穿搭风格经常会引来一阵潮流,她非常喜欢各种紧身的橡胶衣,非要把身材勒成粽子才罢休。近日,金卡戴珊又作妖,穿深V绿色橡胶衣勒出凹凸
糖尿病肾病怎么办,一个中药方,降糖又固肾患者,男,45岁,因口干多饮2年,浮肿1年余加重半年入院。2年前在当地医院查血糖升高,确诊为2型糖尿病,长期口服降糖药。1年前出现视物模糊双下肢水肿,近来水肿加重并累及颜面部,伴胸
老牌中药公司,昆药集团天时地利人和,历久弥新焕新机(报告出品方分析师德邦证券陈铁林刘闯张俊)1。六百年沉淀老牌中药公司,华润入主焕发新机1。1。七十年昆药,六百年昆中药,传承源远流长依托云南地理,沉淀70年的老牌中药公司。昆药集团
不要被小事蒙蔽了双眼,我们还有更大的世界如果你把全部注意力放在一件事上,那件事多么小也会被无限放大,仿佛是天大的事。很多时候,我们总是对一件事不知所措心事重重焦虑不安,因为我们把所有的注意力都放在了这件事上。所以这个时候
随笔2022终过去2023已到来人一辈子,说长不长,说短也不短。一生追逐,不过幸福。可什么是幸?什么是福?有了生活阅历之后,你会明白,平安是幸,平安是福。题记韶华易逝,事过境迁,这一年有很多难忘的瞬间和故事为最难
小闲画画新的一年,有钱有闲小的时候,包括年少的时候,多多少少都有些想要实现的梦想,所谓梦想,当然是有些难度了,很遗憾,大多都没有实现,以前知道这些东西没有办法实现,还挺伤心,现在不伤心了,现在只觉得生活得舒
猪油渣是癌症的催命符吗?劝告不想病情恶化,7物嘴下留情癌细胞是一些在细胞的形态上,与其来源的正常细胞存在着不同程度的差异的细胞。恶性程度越高的癌细胞,与正常来源的细胞在形态上的差异越大如果一个癌细胞恶性程度不高的话,形态和来源的正常细
阳后身体虚弱咋办?专家建议多吃2肉3菜,有助于身体恢复阳过之后,大家都进入到了阳康的阶段。虽然说转阴后大家不再发烧嗓子疼痛但很多人都感到了莫名的无力感,而且很容易疲劳嗜睡,稍微动弹一下就会喘气,这就应了病去如抽丝这句话。如果你转阴后也