位屏蔽java,仅显示十六进制的最后6个位

时间:2014-09-20 00:59:09

标签: java bit-manipulation

我正在玩如何操纵输入的十六进制数字的字节。数据是十六进制: 0x022DA822 == 10001011011010100000100010。运行以下代码后:

    byte mask= (byte) data;

掩码将= 100010,只有最后一位。为什么它只显示十六进制中的最后6位或22?

默认情况下是否会掩盖前20位?

1 个答案:

答案 0 :(得分:0)

您的演员阵容导致数据丢失。一个字节可以保存(你猜对了),一个字节的数据。因此,字节的范围是[-128,127]。注意,最高有效位保留为符号位。所以基本上当你说:(字节)数据时,你将十六进制数据转换为byte类型的变量,它的范围小于十六进制字符串。因此,只有数据的最后一个字节可以存储在字节中。