当处理十六进制数字时,如何使用位偏移量和长度来获取值?

问题描述 投票:0回答:1

我有以下电话号码

0000C1FF61A40000

偏移量或起始点为36或0x23

数字的长度是12或0xc

有人可以帮助我了解如何获得最终价值吗?我认为偏移量意味着要以一对十六进制数字开头,然后长度就是要抓取多少。绝对没有36对,只有8对。不确定我如何只用8对做12对。

hex
1个回答
0
投票

每个十六进制数字代表四个二进制位。因此,您的36位偏移量(BTW为0x24,而不是0x23)等于9个十六进制数字。因此,请丢弃原始号码中最右边的9位数字,并留下0000C1F

然后,所需数字的长度为12位,即3个十六进制数字。因此,请丢弃除最右边的3位数字外的所有数字,并以C1F作为答案。

[如果位数不是4的整数倍,则必须将原始十六进制数转换为二进制,然后从右边舍弃offset个位数,仅保留从右边的length个位数结果,最后将这些length位转换回十六进制。

© www.soinside.com 2019 - 2024. All rights reserved.