在 Java 中将字节转换为无符号字节
要了解如何在 Java 中将字节转换为无符号字节的概念,你需要熟悉一些低级计算机概念。你需要了解所有关于转换、位、字节、字和诸如此类的信息。让我们深入了解一下。
在 Java 中将字节转换为无符号字节
一个字节有 8 位,计算有符号字节和无符号字节范围的公式如下。
Signed Number
min = -1 * 2^(N - 1) = -1 * 2^(7) = -128
max = 2^(N - 1)- 1 = 27 - 1 = 127
Unsigned Number
min = 0
max = 2^(N) - 1 = 2^(8) - 1 = 255
//N is the number of bits
有符号数范围较小的原因是保留了一位用于展示有符号符号;这就是范围从 -128 到 127 的原因。Java 中没有无符号字节涉及无符号数。那么,我们如何用 Java 制作它们呢?
你可以通过将它们转换为新整数 (int) 并使用 0xff 屏蔽(按位与)该整数来生成无符号字节。这样,你将获得最后 8 位,从而防止符号扩展。正如我们所知,0xFF = 1111 1111
在对原始字节进行按位与运算后,将得到一个无符号字节。
如果你还记得,当涉及到有符号位时,所有左边的位都是 1。按位与运算会将它们变为 0,这就是我们对无符号数的表示。看看下面的代码。
import javax.swing.GroupLayout.Alignment;
//library to perform this task
public class Main
{
public static void main(String[] args)
{
byte byteData = -3; //-3 SIGNED 253 UNSIGNED Byte
int Data =byteData & 0xff;
System.out.println(Data);
}
}
输出:
253
这是一个非常简单的过程,但它的概念有点复杂。了解更多关于 Java 中无符号字节的信息这里。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。