佛山专业网站设计公司,百度网站推广怎么样,淄博中企动力怎么样,天津网站排名首先要明确一下转换规则#xff1a;大数转小数#xff0c;多出的高位部分会被截断。比如 int 占 4个byte(32 bit), byte占 1个byte(8bit), 那int 转 byte #xff0c;int 高位多出的那24个bit会被截断。例1:int b 233; // 正整数强转System.out.println((byte)b);// 原码大数转小数多出的高位部分会被截断。比如 int 占 4个byte(32 bit), byte占 1个byte(8bit), 那int 转 byte int 高位多出的那24个bit会被截断。例1:int b 233; // 正整数强转System.out.println((byte)b);// 原码 0000 0000 0000 0000 0000 0000 1110 1001// 补码(内存)0000 0000 0000 0000 0000 0000 1110 1001 // 正数的原码、反码、补码都一样// 截取...// 补码(截取后-内存)1110 1001 // 最高位是 1说明是负数因此在显示的时候还需要做转化...// 反码: 1110 1000// 原码 1001 0111 // 16421 -23 (注意符号位是 1,是负数)例2int b -233; // 负整数强转System.out.println((byte)b);// 原码 1000 0000 0000 0000 0000 0000 1110 1001 // 因为是负数所以符号位是 1// 反码 1111 1111 1111 1111 1111 1111 0001 0110 // 负数的反码符号位不变其它位取反// 补码(内存) 1111 1111 1111 1111 1111 1111 0001 0111 // 负数的补码等于它的反码 1// 截取...// 补码(截取后-内存)0001 0111 // 最高位是0,说明是正数正数的原码、反码、补码都一样// 原码: 0001 0111 // 16421 23Note:1. 数字在内存中进行计算的时候始终是以补码的形式进行的但是显示给我们用户看的时候却是以原码的形式展示的因此在运算之前必须先转换成补码的形式。2. int 转 byte, 截断的是高位的24个bit int 转 short 截断的则是高位的16个bit依此类推。