Java 用int的位表示进行操作
我有一些像这样的Java 用int的位表示进行操作,java,int,short,Java,Int,Short,我有一些像这样的int和short: int a = //... short b = //.. 使用以下位表示法制作int c的最快方法是什么: a的第二个和第三个最高有效字节由表示b的字节组成 a的其余字节保持不变 也许按位或在这方面会有所帮助,但仍然看不到效果 例如: a = 01010101 01010101 01010101 01010101 b = 11111111 11111111 那么我们有 c = 01010101 11111111 11111111 0
int
和short
:
int a = //...
short b = //..
使用以下位表示法制作int c
的最快方法是什么:
的第二个和第三个最高有效字节由表示a
的字节组成李>b
的其余字节保持不变a
或
在这方面会有所帮助,但仍然看不到效果
例如:
a = 01010101 01010101 01010101 01010101
b = 11111111 11111111
那么我们有
c = 01010101 11111111 11111111 01010101
删除这些字节中以前的内容,然后放入
b
:
c = (a & 0xFF0000FF) | ((b << 8) & 0x00FFFF00);
c=(a&0xFF0000FF)|((b删除这些字节中的内容,然后放入b
:
c = (a & 0xFF0000FF) | ((b << 8) & 0x00FFFF00);
c=(a&0xFF0000FF)|((b你能给出一个输入和输出的例子吗?也许连同一个位表示法一起看你想要实现的数学。@Zabuza添加了一些例子你能给出一个输入和输出的例子吗?也许连同一个位表示法一起看你想要实现的数学。@Zabuza添加了一些例子你能澄清一下为什么Y移位器b 8位l吗eft?@St.Antario为了使它与中间的两个字节对齐,你可以在你自己的图表中看到,b
也向左移动了8位。啊,我明白了。这意味着它被转换为int,然后被移位了8位。谢谢。你能澄清一下为什么yoy将b移位了8位吗?@St.Antario为了使它与中间的两个字节对齐,你可以看到I在你自己的图表中,b
也向左移动了8位。啊,我明白了。这意味着它被转换为int,然后被移位了8位。谢谢。