Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用int的位表示进行操作_Java_Int_Short - Fatal编程技术网

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位。谢谢。