Java中byte转int

xiaoxiao2021-02-27  639

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

         一个字节为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

转载请注明原文地址: https://www.6miu.com/read-118.html

最新回复(0)