原码、反码和补码

计算机在存储数值类型数据时是以补码的形式存储的,读取显示时将补码转为原码输出
针对于二进制, 第一位为符号位:1表示负数 0表示整数

  • 正数的原码、反码、补码都一样。
  • 负数的反码:原码除了符号位不变之外其余取反 ;负数的补码=反码+1。
  • 补码转原码:补码-1然后除了符号位以外其余取反。
public class _原码反码补码 {
	public static void main(String[] args) {
		//正数的原码、反码、补码都一样
		int i=129;//   0000 0000 0000 0000 0000 0000 1000 0001
		int i1=-129;// 1000 0000 0000 0000 0000 0000 1000 0001
		
		byte b2=5;//原码:0000 0101  反码:0000 0101  补码:0000 0101
		byte b3=-5;//原码1000 0101  反码:1111 1010  补码:1111 1011
		
		
		byte b4=(byte) 129;// 补码:1000 0001  反码:1000 0000 原码:1111 1111
		System.out.println(b4);//-127
		
		System.out.println(0b01111111);//127
		System.out.println((byte)0b11111111);//-1 1111 1111为补码,会将补码转为原码再显示
		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值