当前位置: 首页 > 面试题库 >

在Java中从byte转换为int

范振海
2023-03-14
问题内容

我生成了一个安全的随机数,并将其值放入一个字节中。这是我的代码。

SecureRandom ranGen = new SecureRandom();
byte[] rno = new byte[4]; 
ranGen.nextBytes(rno);
int i = rno[0].intValue();

但是我遇到一个错误:

 byte cannot be dereferenced

问题答案:

您的数组byte基元,但是您正在尝试对其调用方法。

您无需做任何显式操作即可将a转换byteint,只需:

int i=rno[0];

…因为这不是垂头丧气。

请注意,byte-to- int转换的默认行为是保留值的符号(请记住,byte在Java中是带符号的类型)。因此,例如:

byte b1 = -100;
int i1 = b1;
System.out.println(i1); // -100

如果您想到的byte是无符号(156)而不是有符号(-100),那么从Java
8开始,有Byte.toUnsignedInt

byte b2 = -100; // Or `= (byte)156;`
int = Byte.toUnsignedInt(b2);
System.out.println(i2); // 156

在Java 8之前,要获得中的等效值,int您需要屏蔽符号位:

byte b2 = -100; // Or `= (byte)156;`
int i2 = (b2 & 0xFF);
System.out.println(i2); // 156

出于完整性#1的考虑:如果出于某种原因 确实 想要使用各种方法Byte不需要在这里使用
),则可以使用装箱转换:

Byte b = rno[0]; // Boxing conversion converts `byte` to `Byte`
int i = b.intValue();

Byte构造函数:

Byte b = new Byte(rno[0]);
int i = b.intValue();

但是同样,您在这里不需要。

出于完整性2的考虑:如果 低调的(例如,如果您尝试将an转换intbyte),则只需要强制转换:

int i;
byte b;

i = 5;
b = (byte)i;

这可以确保编译器知道它是一个低估的项目,因此不会出现“可能的精度损失”错误。



 类似资料:
  • 问题内容: 如何在Java中将(2个字节)转换为字节数组,例如 应该是这样的。但不确定。 编辑: 您也可以使用: 发现以获取本机位顺序是大还是小。另外,从以下代码中提取代码: 字节(数组/偏移量)为布尔值 字节数组到char 字节数组短 字节数组到int 浮动的字节数组 字节数组长 字节数组加倍 反之亦然。 问题答案:

  • 我目前正在开发一个C#web API。对于特定的调用,我需要使用对API的ajax调用发送2个图像,以便API可以将它们保存为数据库中的varbinary(max)。 null

  • 问题内容: 我有一个我使用的,因为我想在逻辑上区分不同类型的字节。 我可以轻松地进行转换, 但我找不到转换或转换切片的方法:失败。 这样的事情可能吗?内存中的位是相同的(对吗?),因此应该采取某种方法,除非逐字节复制到新对象中。 例如,这些都不起作用:http : //play.golang.org/p/WPhD3KufR8 问题答案: 您不能将自己的myByte的片转换为字节的片。 但是您可以拥

  • 我有一个从web表单接收和上传文件的控制器方法。如何从FilePart中提取字节数组并将其保存到DB? 我可以通过使用FilePart将FilePart保存到一个文件来实现。但这似乎又慢又难看。有更好的方法吗?

  • 问题内容: 如果我正在使用,并将其转换为,则该如何正确工作?值会被截断以适合浮点数吗?还是舍入值不同?抱歉,这听起来有点补救,但是我正在尝试掌握和转换的概念。 问题答案: 根据 Java语言规范的 第5.1.3节 : 从double到float的原始转换变窄由IEEE 754舍入规则(第4.2.4节)控制。这种转换可能会失去精度,但也会失去范围,导致非零双精度浮点为零,而有限双精度浮点为无穷大。双

  • 问题内容: 我有一个表示RGB图像的整数数组,想将其转换为字节数组并将其保存到文件中。 在Java中将整数数组转换为字节数组的最佳方法是什么? 问题答案: 正如Brian所说,您需要确定需要什么样的转换。 您是否要将其保存为“正常”图像文件(jpg,png等)? 如果是这样,您可能应该使用Java Image I / O API。 如果要以“原始”格式保存,则必须指定写入字节的顺序,然后使用和NI