Java中byte转int

计算机中数值以补码的形式表示和存储,正数的原码、反码、补码相同,负数的补码为其原码的绝对值所有位取反后加一。

         一个字节为8位,在计算机中补码01111111转换为原码十进制为127,补码10000000转换为原码十进制为-128,所以一个字节所表示的范围为-128~127。

public static void main(String[] args) {
		// TODO Auto-generated method stub
		int i=0xaa;
		//结果170
		System.out.println(i);
		for(int j=0;j<32;j++){
			int k=0x00000001&i>>j;
		    //结果为0000 0000 1010 1010
			System.out.println(k);
		}
		byte b=(byte)i;
		//其实为System.out.println((int)b);默认转换为int型结果为-86
	        System.out.println(b);
		for(int j=0;j<32;j++){
			int k=0x00000001&(int)b>>j;
		    //结果为1111 1111 1010 1010
			System.out.println(k);
		}
		//结果为170
		System.out.println(0x000000ff&b);
	}

 System.out.println();以原码十进制的形式输出

 b=1010 1010转换为原码十进制为-86,(int)b=1111 1111 1010 1010转换为原码十进制也要为-86

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值