补码原码反码 移位和位操作运算 二进制

本文详细解析了正数和负数的原码、反码及补码的概念,介绍了补码在Java中的存储方式,并深入讲解了按位与、按位或、按位异或等位操作运算。此外,还提供了十进制转换为二进制的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

补码原码反码

正数的原码、反码和补码都相同。

负数原码和反码的相互转换:
符号位不变,数值位按位取反。(0变1,1变0)

负数原码和补码的相互转换:
符号位不变,数值位按位取反,末位(最右边)再加1。
注意:负数在java中以补码形式存储

移位和位操作运算

①& 按位与
如果两个相应的二进制位都为1,则该位的结果值为1,否则为0
②| 按位或
两个相应的二进制位中只要有一个为1,该位的结果值为1
③^ 按位异或
若参加运算的两个二进制位值相同则为0,否则为1
④~ 取反
~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0
⑤<< 左移
用来将一个数的各二进制位全部左移N位,右补0‍‍
⑥>>右移
将一个数的各二进制位右移N位,最高位是什么就在左边补齐什么(0补0,1补1)
⑦>>>无符号右移
将一个数的各二进制位右移N位,最高位补0

【0为正,1为负】
十进制转换成二进制

Integer.toBinaryString(int i)for (int i = 31; i >= 0; i--) 
			{
	            System.out.print((temp >>> i ) & 1);//输出每一位
			}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值