我有一个 16 位数字,例如0x789A
,我想将 2 个最高有效位更改为10
(设置最高位并清除第二高位)以结束0x989A
.
我知道我可以使用设置第一位,n | 0x8000
并且可以使用取消设置第二位(在 php 中),n & ~0x4000
但是有没有办法10
在一个操作中“转换”这两位而不影响较小的位?
同样,我有另一个 16 位数字,比如0xABCD
我想将第一个字节的字节值更改为不同的十六进制值,例如5
,我最终得到0x5BCD
. 有没有办法使用按位运算设置字节?我什至不知道如何开始。