我对C语言的知识不是很了解,由于我的同事休假,我遇到了一个问题。
我有一个32位数字,需要从中提取一些位。我已经阅读了一些讨论帖,但仍然不清楚如何操作。如果有人能帮助我,我将非常感激。
以下是我需要完成的示例:
假设十六进制数= 0xD7448EAB
。
二进制为= 1101 0111 0100 0100 1000 1110 1010 1011
.
我需要提取16位,并输出该值。我想要的是第10到25位。
忽略较低的10位(十进制),即10 1010 1011
被忽略。
忽略上面的6位(溢出),即1101 01
被忽略。
剩下的16位数据需要作为输出,即11 0100 0100 1000 11
(斜体数字是所需的输出)。
这只是一个示例,我将一直得到不同的十六进制数字,并且需要提取与我解释的相同的位。
我该如何解决?
谢谢。
对于此示例,您将输出1101 0001 0010 0011
,即0xD123
或十进制的53539。