我需要转换十进制值
int dec = 129;
Run Code Online (Sandbox Code Playgroud)
变成像字节值一样
byte frame2 = (byte) 129;
Run Code Online (Sandbox Code Playgroud)
但正如您可能已经猜到的那样,它会转换为意外值.我希望字节值字面上是129而不是-127(frame2的值).
你怎么能用Java实现它?我也很感激解释.
谢谢
你不能,也很可能你不需要.根据定义,一个字节是-128到127.但是,如果需要编码,则可以在一个字节中存储任何256个不同的值.
byte b = (byte) 129;
int i = b & 0xff; // == 129
Run Code Online (Sandbox Code Playgroud)
要么
byte b = (byte) (129 + Byte.MIN_VALUE);
int i = b - Byte.MIN_VALUE; // also 129.
Run Code Online (Sandbox Code Playgroud)