我有以下现有的整数:
128 = 1000.0000
我想把下面的整数转移2个左边的位置......
15 = 0000.1111
...将现有数字转换为bitindex 6:
MyResult
应为= 1011.1100 = 188
我试过这个,但结果是错的。如果我将positionsToShift
更改为2:
int existingNumber = 128;
int numberToLeftShift = 15;
int positionsToShift = 6;
int myResult = (existingNumber << positionsToShift) | numberToLeftShift;
根据你的解释,你希望numberToLeftShift
转变
15 << 2
然后与现有的整数组合:
(15 << 2) | 128
履行
int existingNumber = 128;
int numberToLeftShift = 15;
int positionsToShift = 2; // we want shift by 2 to the left; not by 6
// numberToLeftShift and existingNumber are swapped
int myResult = (numberToLeftShift << positionsToShift) | existingNumber;
根据你的文字描述,你应该使用
var myResult = (numberToLeftShift << positionsToShift) | existingNumber;