Java类型转换(面试题)

it2024-12-18  8

题目

byte b = 130; 此表达式有没有问题? 如果想正确赋值, 可以怎么做? 最终结果是多少?

分析

byte类型在Java语言中占1个字节, 它的取值范围是-128 - 127, 所以此表达式有问题如果想正确赋值, 需要强制类型转换: byte b = (byte) 130;最终结果首先要了解数值在计算机中的计算方式, 可以参考之前的文章.. 已知130默认为int类型, Java int类型在内存中占四个字节, 所以int类型130用二进制表示为: 00000000 00000000 00000000 10000010 (这是130的原码, 反码和补码) 强制转换为byte类型, byte类型占一个字节, 所以截取后二进制为: 10000010 (运算是以补码进行的, 这个结果是补码) 已知补码求原码 符号位 数值位 补码 1 0000010 反码 1 0000001 原码 1 1111110 ---------------------------------------------- 符号位为1, 所以为负数 数值位1111110, 二进制转十进制为126, 所以最后值为-126
最新回复(0)