相关疑难解决方法(0)

字节数组到String并返回..问题-127

在下面的:

 scala> (new String(Array[Byte](1, 2, 3, -1, -2, -127))).getBytes
 res12: Array[Byte] = Array(1, 2, 3, -1, -2, 63)
Run Code Online (Sandbox Code Playgroud)

为什么-127转换为63?以及如何将其恢复为-127

[编辑:]下面的Java版本(以显示它不仅仅是"Scala问题")

c:\tmp>type Main.java
public class Main {
    public static void main(String [] args) {
        byte [] b = {1, 2, 3, -1, -2, -127};
        byte [] c = new String(b).getBytes();
        for (int i = 0; i < 6; i++){
            System.out.println("b:"+b[i]+"; c:"+c[i]);
        }
    }
}
c:\tmp>javac Main.java
c:\tmp>java Main
b:1; c:1
b:2; c:2
b:3; c:3
b:-1; c:-1
b:-2; c:-2
b:-127; c:63
Run Code Online (Sandbox Code Playgroud)

java scala

32
推荐指数
4
解决办法
6万
查看次数

标签 统计

java ×1

scala ×1