我正在玩如何操纵输入的十六进制数字的字节。数据是十六进制: 0x022DA822 == 10001011011010100000100010。运行以下代码后:
byte mask= (byte) data;
掩码将= 100010,只有最后一位。为什么它只显示十六进制中的最后6位或22?
默认情况下是否会掩盖前20位?
答案 0 :(得分:0)
您的演员阵容导致数据丢失。一个字节可以保存(你猜对了),一个字节的数据。因此,字节的范围是[-128,127]。注意,最高有效位保留为符号位。所以基本上当你说:(字节)数据时,你将十六进制数据转换为byte类型的变量,它的范围小于十六进制字符串。因此,只有数据的最后一个字节可以存储在字节中。