假设我们有两个 int 变量,
在我的解决方案中,我稍微作弊了一下,使用了二进制字符串:
A
和 B
,它们的位长分别为 N < 16
和 M < 16
。
我们想要一个新的 int 变量 C
,其中 N
个最低有效位包含 A
的位,接下来的 M
个位包含 B
的位。(假设所有变量都是32位长且采用小端字节序)。在我的解决方案中,我稍微作弊了一下,使用了二进制字符串:
int a = 65535;
int b = 65;
String cStr = Integer.toBinaryString(b) + Integer.toBinaryString(a);
int c = Integer.parseInt(cStr, 2);
但是,如何使用位运算符来完成呢?
示例:
A=1,B=1(N=1,M=1相应),则C = 11
A = 11000011010100,B = 101100(N=14,M=6相应),则C = 10110011000011010100
N
或M
)。此外,如果您可以展示一种尝试使用位运算符的解决方案,对您会更有益。 - norok2a
和b
都是1
,你想要的结果是3
吗? - user85421