byte abc[]="204.29.207.217";
这里出现了错误,请告诉我正确的方法。
如果你想分配硬编码的值,可以使用:
byte[] bytes = { (byte) 204, 29, (byte) 207, (byte) 217 };
注意强制类型转换,因为Java字节是有符号的 - 在这里进行强制类型转换会将溢出强制转换为负值,这可能是您想要的。
如果您实际上要解析字符串,则需要这样做 - 将字符串拆分为几个部分并依次解析每个部分。
如果你想将一个字符串转换为其某种特定编码下的二进制表示,你应该使用 String.getBytes
,例如:
byte[] abc = "204.29.207.217".getBytes("UTF-8");
(请注意,按照惯例,[]
应作为变量类型的一部分而不是在变量名称之后放置。虽然后者是允许的,但从风格上讲是不鼓励的。)
(byte) 128
会转换为 -1
吗?我一直很困惑。我知道在C++中它能够工作(除非我们使用 char
而不是 byte
),但我不确定Java是否也是如此。 - Martijn Courteaux(byte) 128
的结果是-128。(byte) 255
的结果是-1。 - Jon Skeet(byte) 255
。谢谢。 - Martijn Courteaux这是一个字符串字面量。如果您想获得该字符串的二进制表示,可以使用其中一个String.getBytes
方法。
使用char[]或String。确保获取String的包含文件。