作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在不同类型的转换方面遇到问题。在我的代码中,我尝试使用字节,然后将它们转换为整数,以便能够将整数中的 x 位数写入某种存储中。
问题是,当我将负数作为字节并将其转换为整数时,整数的位表示形式将所有前导位设置为 1。因此,当我尝试保存整数中的 10 位时,我得到的前导位为 1,而不是我预期的 0。
有没有办法将字节重新解释为整数,同时保持位表示相同?我不需要关心整数的实际数值。
在 C++ 中,我习惯使用无符号值来防止此问题,但现在我不知道如何在 java 中处理仅限于有符号整数的问题。
示例:
/*
decimal: -28
as byte: 11100100
as integer: 11111111111111111111111111100100
needed/expected integer: 00000000000000000000000011100100
*/
import java.util.*;
import java.lang.*;
import java.io.*;
class MyClass
{
public static void main (String[] args) throws java.lang.Exception
{
System.out.println(Integer.toBinaryString((byte)-28));
}
}
最佳答案
yourInt = yourByte & 255;
只需屏蔽掉不需要的部分即可。
关于java - 如何在java中将字节重新解释为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39819655/
我是一名优秀的程序员,十分优秀!