Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正确地将十进制值转换为字节值_Java - Fatal编程技术网

Java 正确地将十进制值转换为字节值

Java 正确地将十进制值转换为字节值,java,Java,我需要像这样转换十进制值 int dec = 129; byte frame2 = (byte) 129; 转换为一个字节值,如 int dec = 129; byte frame2 = (byte) 129; 但正如您可能已经猜到的,它会转换为一个意外的值。我希望字节值是129,而不是-127(frame2的值) 如何用Java实现它?我也希望你能解释一下 谢谢你不能,而且很可能你不需要。一个字节的定义是-128到127。但是,如果需要编码,可以在一个字节中存储任意256个不同的值 b

我需要像这样转换十进制值

int dec = 129;
byte frame2 = (byte) 129;
转换为一个字节值,如

int dec = 129;
byte frame2 = (byte) 129;
但正如您可能已经猜到的,它会转换为一个意外的值。我希望字节值是129,而不是-127(frame2的值)

如何用Java实现它?我也希望你能解释一下


谢谢

你不能,而且很可能你不需要。一个字节的定义是-128到127。但是,如果需要编码,可以在一个字节中存储任意256个不同的值

byte b = (byte) 129;
int i = b & 0xff; // == 129


你不能,而且很可能你不需要。一个字节的定义是-128到127。但是,如果需要编码,可以在一个字节中存储任意256个不同的值

byte b = (byte) 129;
int i = b & 0xff; // == 129

我需要像这样转换十进制值

int dec = 129;
byte frame2 = (byte) 129;
停在那里。没有所谓的“十进制值”。有些值保存在2s补码中,有些是十进制表示

将存储为129(10)或81(16)

转换为一个字节值,如

int dec = 129;
byte frame2 = (byte) 129;
结果将是
-127,
,因为字节是用Java签名的,您的值设置了符号位

如果要将该值当作
129
使用,请使用
(frame2&0xff)。
但很可能根本不需要这样做

您的问题实际上是关于Java中字节的符号扩展:它与小数无关

我需要像这样转换十进制值

int dec = 129;
byte frame2 = (byte) 129;
停在那里。没有所谓的“十进制值”。有些值保存在2s补码中,有些是十进制表示

将存储为129(10)或81(16)

转换为一个字节值,如

int dec = 129;
byte frame2 = (byte) 129;
结果将是
-127,
,因为字节是用Java签名的,您的值设置了符号位

如果要将该值当作
129
使用,请使用
(frame2&0xff)。
但很可能根本不需要这样做


您的问题实际上是关于Java中字节的符号扩展:它与小数无关。

不要使用byte:@DekDekku这会慢得多,但它有什么帮助?你能证明你的意思吗?我只是说不要用字节。“也不是字节,这在利害关系上是完全相同的东西。@DekDekku根据OP的问题,如果他需要存储0到255之间的值,字节可能非常适合。“他只是需要在知情的情况下使用它。”DekDekku我以为你是在建议使用Byte。现在还不清楚你的建议是什么。不要使用byte:@DekDekku,这样会慢很多,但它会有什么帮助?你能证明你的意思吗?我只是说不要用字节。“也不是字节,这在利害关系上是完全相同的东西。@DekDekku根据OP的问题,如果他需要存储0到255之间的值,字节可能非常适合。“他只是需要在知情的情况下使用它。”DekDekku我以为你是在建议使用Byte。不清楚你建议的替代方案是什么。+1我想说字节是正确的,它都是-127或129,这更像是字节的表示/使用问题。+1我想说字节是正确的,它都是-127或129,这更像是字节的表示/使用问题。