我可以像这样返回十六进制数字的开头
$ printf %x $(( 0x07d00050 >> 16 ))
7d0
但是在这种情况下,我想返回结束0050
。我试了这个没有运气
$ printf %x $(( 0x07d00050 << 16 ))
7d000500000
答案 0 :(得分:2)
要屏蔽位,您应该使用二进制AND运算符,即&
:
printf %04x $(( 0x07d0050 & 0xffff ))
答案 1 :(得分:1)
这有效:
printf "%04x" $(( 0x07d00050 & 0xFFFF))