int val = 233;
byte b = (byte) val;
System.out.println(b);
Run Code Online (Sandbox Code Playgroud)
我有一个简单的例子:我有一个有一些值的整数,我想将该值转换为一个字节用于输出.但在这种情况下,负值即将来临.
如何成功将int值放入字节类型?
pol*_*nts 14
Java的byte是一个符号的8位数字类型,其范围是-128到127(JLS 4.2.1).233超出这个范围; -23相反的位模式代表.
11101001 = 1 + 8 + 32 + 64 + 128 = 233 (int)
1 + 8 + 32 + 64 - 128 = -23 (byte)
Run Code Online (Sandbox Code Playgroud)
也就是说,如果你坚持int在一个字节中存储a的前8位,那么byteVariable = (byte) intVariable就这样做.如果需要将其强制转换为int,则必须屏蔽任何可能的符号扩展名(即intVariable = byteVariable & 0xFF;).
您可以在一个字节中使用256个值,默认范围是-128到127,但它可以表示具有一些转换的任何256个值.在您的情况下,您需要做的就是遵循屏蔽位的建议.
int val =233;
byte b = (byte)val;
System.out.println(b & 0xFF); // prints 233.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27267 次 |
| 最近记录: |