因此,假设我按以下顺序设置了一组位:
00101显然等于5
是否可以在这些位的集合的左上角添加一个1 100101,等于37。(使用位操作)
非常感谢您!
答案 0 :(得分:0)
00101 which obviously would be equal to 5
100101 which would be equal to 37
要解决此问题,您需要两个值:
val
len
然后,您可以使用以下公式获得最终值:
result = val | (1 << len)
您的情况应该是
result = 00101b | (1 << 5d) = 00101b | 100000b = 100101b
在x86程序集(Intel MASM语法)中,可以这样做
mov eax, val ; EAX = 00000101
mov ecx, len ; ECX = 5
mov edx, 1 ; EDX = 00000001
shl edx, cl ; EDX = 00100000
or eax, edx ; EAX = 00100101