我现在正在做一个操作系统相关的项目,有一个步骤需要使用 C 检查十六进制数是否以 3
开头。
目前我的想法是将该十六进制数转换为字符串并检查初始字符,但找不到任何相关文档。有人知道吗?也许只是一个提示。
最佳答案
有很多方法可以将数字转换为十六进制字符串(sprintf
浮现在脑海;How can I convert an integer to a hexadecimal string in C? 列出更多)——但是,为什么要这样做?
一个完整的十六进制数是通过将每个半字节(4 位)转换为十六进制“数字”而形成的。要获得第一个,您可以将您的值除以 16,直到达到最后一个(=“第一个”,十进制和十六进制值通用的从左到右的表示法)数字。如果这是 3,你就完成了。
假设 value
是一个无符号数:
while (value > 15)
value >>= 4;
然后检查是否 value == 3
。
关于c - 如何在 C 中检查十六进制数 (%x) 是否以某个数字开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49079147/