在 java 中,我正在尝试将 & 与过滤器一起使用以获取整数的每个字节,它适用于最后 3 个字节,但第一个抛出数字格式异常
in java i am trying to use & with a filter to get each byte of an integer it works for the last 3 bytes but the first throws a number format exception
您好,在此先感谢您的帮助,
我正在尝试编写一个程序,允许您重新排序整数中的字节我计划用这样的过滤器分隔字节
int number = 3;
int filter = Integer.parseInt("11111111000000000000000000000000",2);
return number & filter;
我在四个不同的过滤器
之间写了一个switch语句到select
- 第一个字节过滤器 = "11111111000000000000000000000000"
- 第二个字节过滤器 = "00000000111111110000000000000000"
- 第三个字节过滤器 = "00000000000000001111111100000000"
- 第四字节过滤器 = "00000000000000000000000011111111"
第二个到第四个过滤器有效,但第一个过滤器抛出数字格式异常,这与整数的符号有关吗?
像这样分开字节后,我想使用左移和右移来移动字节并使用 OR 按位运算符将它们组合回 32 位整数,但顺序不同
再次感谢您的帮助。
方法Integer.parseInt
并不期望您直接将要设置的字节传递给它,而是简单地将传递的字符串解释为二进制数,以便
11111111000000000000000000000000
二进制是
4278190080
十进制。它本身大于整数可以容纳的最大值。
如果你想用二进制模式定义你的 int 变量,那么你可以很容易地做到这一点,标准 java 语法:
// using hex syntax
int firstByteFilter = 0xFF000000;
int secondByteFilter = 0x00FF0000;
等等。
不需要涉及parseInt方法。
您好,在此先感谢您的帮助, 我正在尝试编写一个程序,允许您重新排序整数中的字节我计划用这样的过滤器分隔字节
int number = 3;
int filter = Integer.parseInt("11111111000000000000000000000000",2);
return number & filter;
我在四个不同的过滤器
之间写了一个switch语句到select- 第一个字节过滤器 = "11111111000000000000000000000000"
- 第二个字节过滤器 = "00000000111111110000000000000000"
- 第三个字节过滤器 = "00000000000000001111111100000000"
- 第四字节过滤器 = "00000000000000000000000011111111"
第二个到第四个过滤器有效,但第一个过滤器抛出数字格式异常,这与整数的符号有关吗?
像这样分开字节后,我想使用左移和右移来移动字节并使用 OR 按位运算符将它们组合回 32 位整数,但顺序不同 再次感谢您的帮助。
方法Integer.parseInt
并不期望您直接将要设置的字节传递给它,而是简单地将传递的字符串解释为二进制数,以便
11111111000000000000000000000000
二进制是
4278190080
十进制。它本身大于整数可以容纳的最大值。
如果你想用二进制模式定义你的 int 变量,那么你可以很容易地做到这一点,标准 java 语法:
// using hex syntax
int firstByteFilter = 0xFF000000;
int secondByteFilter = 0x00FF0000;
等等。 不需要涉及parseInt方法。