返回号码末尾

时间:2013-07-09 02:51:09

标签: bash bit-manipulation bitwise-operators

我可以像这样返回十六进制数字的开头

$ printf %x $(( 0x07d00050 >> 16 ))
7d0

但是在这种情况下,我想返回结束0050。我试了这个没有运气

$ printf %x $(( 0x07d00050 << 16 ))
7d000500000

2 个答案:

答案 0 :(得分:2)

要屏蔽位,您应该使用二进制AND运算符,即&

printf %04x $(( 0x07d0050 & 0xffff ))

答案 1 :(得分:1)

这有效:

printf "%04x" $(( 0x07d00050 & 0xFFFF))