如何在一个整数中合并一个数组值并颠倒?
example: a[]=0b1011,0b1111 to 10111111 and 10010101 to b[]=0b1001,0b0101
<<
和|
将两个整数“粘贴”在一起,>>
和&
将它们分开。
例如,(3 << 4) | 5
是53,53 >> 4
是3,53 & 7
是5。
(将整数转换为二进制表示法作为练习。)
你需要隐藏类型,以便它们可以保存8位(char或uint8可以根据你的需要做)。我不确定你的4位是什么类型的。你最好将类型重新定义为uint8或类似的东西[0] = 0b00001011。
一旦你有正确的位数需要将第一个值的位移4,那么使用按位OR运算符,以你的例子为例,
int8 myValue = a[0] << 4 | a[1]
这是最近发生的事情
颠倒我认为你的意思相反?
你需要使用按位AND&,并做类似的事情,所以我不会再详细解释,但它的这一点
a[0] = (myValue & 0b1111000) >> 4 = 00001011
a[1] = myValue & 0b00001111 = 00001111
希望有所帮助。
tnq求助,我想要一个代码来做到这一点
a[]={1,2,3,5,8,6,7,4};
result=a[0,1,2,3]+a[4,5,6,7];
result-->9909