我生成了一个安全的随机数,并将其值放入一个字节中。这是我的代码。
SecureRandom ranGen = new SecureRandom();
byte[] rno = new byte[4];
ranGen.nextBytes(rno);
int i = rno[0].intValue();
但是我遇到一个错误:
byte cannot be dereferenced
您的数组是byte
基元,但是您正在尝试对其调用方法。
您无需做任何显式操作即可将a转换byte
为int
,只需:
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转换int
为byte
),则只需要强制转换:
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