繁体   English   中英

如何从两个 n 位二进制数创建一个 2n 位二进制数?

[英]How can i create from two n-bit binary numbers a 2n-binary number?

假设我有 n=4 所以两个 4 位二进制数。 B1 = b1010B2 = b0110
我想创建一个类似于b10100110 (B1B2) 的 8 位数字。
我怎么能用Java做这样的事情?

将 1 乘以16 ,这与在末尾添加四个零相同。 然后添加它们。 通常,乘以2^n会添加n zeroes

您当然可以按照建议将它们相乘和相加。 我更喜欢使用位操作运算符。

       int b1 = 0b1010;
       int b2 = 0b0110;

       // shift b1 left 4 bits and then OR it with b2.
       int result = (b1<<4)|b2;

       System.out.println(Integer.toBinaryString(result));

作为旁注,对于您左移的每一位,您都乘以 2 的幂。因此,左移 4 位就是乘以 16。对于右移,您正在除以 2 的幂。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM