Возможно ли это?У меня есть подписанный int и мне нужно сдвинуть его правильно на 4 места.Я не могу привести int к unsigned int, сдвинуть и затем вернуть обратно.Мне нужно разобраться с этим после.
Так что, если у меня есть битовая последовательность вроде:
x = 1001
и мне нужно сдвинуть ее вправо на 2 точки:
x = x >> 2;
Я получаю 1110;
Я хотел бы получить 0010. Я не могу придумать, как использовать и и, или или, чтобы сделать это.Любые идеи?
В частности, это то, что мне нужно.
0x12345678 замените 56 на 0xab и в конечном итоге это: 0x1234ab78
Мой метод получил право 56,
int right = Ox12345
слева от 56
int left = Ox 78
get 56
int replace = 56
вернуться вправо |левый |замените
и верните
Ox1234ab78
Я столкнулся с проблемами, если число слева от замены имеет 1 в качестве MSB.Потому что я сдвигаю всю вещь влево, а затем вправо, и она полностью переходит на 1.