4

我真的不敢相信我在问这个,但我读到的所有内容都是从 int 转换为 byte 到 string 到 byte 或其他东西。我实际上是在尝试将一个字节插入字节数组。或者就此而言,用字节而不是整数初始化一个字节数组。

byte[] header = {0x8b, 0x1f, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03};

编译器抱怨它们是整数。我正在尝试插入字节。

4

4 回答 4

9

byte是范围内的有符号整数[-128,127]0x8b139d,因此您需要将其转换为一个字节(byte)0x8b或使用适当范围内的值,例如-0x75(相当于转换0x8bbyte)。

                                                                                        

于 2012-10-28T22:32:23.877 回答
3

编译器威胁文字,0x8b如整数,因此您必须显式转换为字节

byte[] header = { (byte) 0x0b, (byte) 0x1f };
于 2012-10-28T22:33:16.153 回答
3

字节是有符号整数,因此不能超过 127。0x8b因此太大了。

参考

于 2012-10-28T22:34:07.027 回答
0
public static byte[] bytes(byte... bytes){ return bytes; }

byte[] header=bytes(0x8b, 0x1f, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03);
于 2012-10-28T23:36:44.780 回答