如何在C中检查十六进制数(%x)是否以某个数字开头?

Boo*_*ooo 0 c hex

我现在正在开发一个与操作系统相关的项目,有一个步骤需要3使用C 来检查十六进制数是否以.

目前我的想法是将该十六进制数转换为字符串并检查初始字符,但无法找到任何文档来执行此操作.有人有什么想法吗?也许只是一个暗示.

usr*_*301 7

有很多方法可以将数字转换为十六进制字符串(sprintf想到这一点; 如何将整数转换为C中的十六进制字符串?列出更多) - 但是,为什么要这样做?

通过将每个半字节(4位)转换为十六进制"数字"来形成完整的十六进制数.要获得第一个,您可以将值除以16,直到达到最终(='first',以十进制和十六进制值共同的从左到右的表示法)数字.如果那是3,你就完成了.

假设value无符号数:

while (value > 15)
     value >>= 4;
Run Code Online (Sandbox Code Playgroud)

然后检查是否value == 3.