我真的不敢相信我问这个,但我读到的一切都是从int转换为byte到string转换为byte或者其他东西。我真的试图将一个字节插入一个字节数组。或者就此而言,使用字节初始化字节数组,而不是整数。
byte[] header = {0x8b, 0x1f, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03};
编译器抱怨它们是整数。我正在尝试插入字节。
答案 0 :(得分:9)
byte
是[-128,127]
范围内的有符号整数。 0x8b
为139d
,因此您需要将其强制转换为字节(byte)0x8b
或使用适当范围内的值,例如-0x75
(相当于转换0x8b
1}}到byte
)。
答案 1 :(得分:3)
编译器威胁像0x8b
这样的文字作为整数,所以你必须显式地转换为字节
byte[] header = { (byte) 0x0b, (byte) 0x1f };
答案 2 :(得分:3)
字节是有符号整数,因此不能超过127. 0x8b
因此太大了。
答案 3 :(得分:0)
public static byte[] bytes(byte... bytes){ return bytes; }
byte[] header=bytes(0x8b, 0x1f, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03);