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

author author     2022-12-29     547

关键词:

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

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

答案

有很多方法可以将数字转换为十六进制字符串(sprintf浮现在脑海中; How can I convert an integer to a hexadecimal string in C?列出更多) - 但是,你为什么要这样做?

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

假设value是无符号数:

while (value > 15)
     value >>= 4;

然后检查value == 3

另一答案

你的想法不错,你可以使用sprintf,它的功能类似于printf / fprintf,但不是在屏幕上打印(或者更精确:写入FILE*缓冲区),它将内容存储在char缓冲区中。

char value[16]; // more than enough space for 4 byte values

int reg = 0x3eef;

sprintf(value, "%x", reg);

if(value[0] == '3')
    printf("The hexadecimal number 0x%s starts with a 3.\n", value);

如何在 C 中检查我的 char 数组的前两个字符?

...0x”开头。如果它以0x开头,这意味着我可以将其转换为十六进制。#inclu 查看详情

检查并验证以某个值开头的某个数字是不是可用

】检查并验证以某个值开头的某个数字是不是可用【英文标题】:Checkandvalidateifacertainnumberstartingwithacertainvalueisavailable检查并验证以某个值开头的某个数字是否可用【发布时间】:2020-05-1211:53:17【问题描述】:我想检查两个值之... 查看详情

数值转换

...有数字由0~9构成,逢十进一,十进制数中不会出现10。4、十六进制:以0x或者0X(数字0加字母x)开头,所有数字由0~9,A~F(或者a~f)构成,逢十六进一(其中A、B、C、D、E 查看详情

如何检查 CComBSTR 是不是以某个前缀开头?

】如何检查CComBSTR是不是以某个前缀开头?【英文标题】:HowtocheckifaCComBSTRstartswithacertainprefix?如何检查CComBSTR是否以某个前缀开头?【发布时间】:2013-01-1112:38:07【问题描述】:我遇到了一段代码,我需要简单地对给定的CComBSTR... 查看详情

查找以某个字符串开头的文件[重复]

...te]【发布时间】:2015-11-1002:14:32【问题描述】:我想知道如何检查文件是否存在:例如我有很多文件:Boba.txtJames.txtJamy.txtBoby.txt如何检查以Bob开头的文件是否存在?【问题讨论】:文件名是否存储在字符串数组中?获取目录中所... 查看详情

如何在c语言中用printf()输出某个值的地址?

1.C语言中要输出地址时通常以16进制的方式输出2.printf函数中要显示16进制数时用%x格式3.综上,要输出某个值的地址可以写为printf("%x",&变量);若变量为指针时,则应写为printf("%x",指针);参考技术A可以用printf("%... 查看详情

如何在 C++ 中检查字符串的开头

】如何在C++中检查字符串的开头【英文标题】:howtocheckstringstartinC++【发布时间】:2011-11-1114:06:21【问题描述】:在C++中有什么方法可以检查字符串是否以某个字符串开头(小于原始字符串)?就像我们在Java中可以做的那样bigStr... 查看详情

如何在 Swift 中检查字符串以(前缀)开头或以(后缀)结尾

】如何在Swift中检查字符串以(前缀)开头或以(后缀)结尾【英文标题】:HowtocheckwhataStringstartswith(prefix)orendswith(suffix)inSwift【发布时间】:2015-10-0610:18:04【问题描述】:我正在尝试测试Swift字符串是否以某个值开头或结尾。这... 查看详情

检查字符串是不是以正则表达式数字开头

】检查字符串是不是以正则表达式数字开头【英文标题】:CheckifstringstartswithRegexnumber检查字符串是否以正则表达式数字开头【发布时间】:2017-07-2415:44:36【问题描述】:我对正则表达式真的很陌生,所以我正在寻找一种方法来... 查看详情

c语言数制

...计算机中,经常使用的进制有二进制、八进制、十进制、十六进制。1.二进制数  二进制数由两个基本数字0、1组成,二进制数的运算规律是逢二进一。二进制数的书写通常在数的右下方注上基数2,或在后面加B与其他进制加以... 查看详情

如何在C#中检查数字是不是可以被另一个数字整除而没有条件检查(如果,三进制等)

】如何在C#中检查数字是不是可以被另一个数字整除而没有条件检查(如果,三进制等)【英文标题】:HowtocheckwhethernumberisdivisiblebyanothernumberWITHOUTconditionalcheck(if,ternary,etc.)inC#如何在C#中检查数字是否可以被另一个数字整除而没... 查看详情

c语言如何定义二进制变量?

定义16进制inta=0X1A;定义8进制inta=010;那么定义2进制呢??3Q!  C语言中没有“二进制变量”这一说法!  C语言中的数据基本类型包括:charshortintlongfloatdouble.用哪种类型定义的就叫XX类型变量,如字符型变量,整型变量,浮点... 查看详情

golang中如何判断文件是否有可执行权限

本文介绍在Go语言如何检查文件的权限。以检查文件可执行权限为例。在文件系统中,文件的属性使用uint32表示。例如-rwxrwxrwx判断可执行权限,也就是检查文件mode是否有:--x--x--x表示成十进制数就是73.具体代码如下packagemainimport("... 查看详情

如何检查单词是不是以给定字符开头?

】如何检查单词是不是以给定字符开头?【英文标题】:Howtocheckifawordstartswithagivencharacter?如何检查单词是否以给定字符开头?【发布时间】:2013-03-0918:06:08【问题描述】:我有一个Sharepoint项目的列表:每个项目都有一个标题、... 查看详情

MySQL IF以数字开头做X,否则做Y [重复]

...Selectvaluesthatbeginwithanumber我正在尝试创建一个ORDERBY语句来检查列是否以数字开头 查看详情

python:如何判断列表中的元素是否包含某个数字?(代码片段)

...了:False如果我检查33是否存在,当然我得到“真实”。如何正确检查列表元素中是否存在数字?答案一个非常简单的方法是这个:li=[33,44,55]['3'instr(x)forxinli]这给了[True,False,False]通过使用列表推导,我们通过li的元素,将值转换... 查看详情

java示例代码_使用正则表达式检查数字是否以特殊字符开头

java示例代码_使用正则表达式检查数字是否以特殊字符开头 查看详情

检查字符串是不是以 XXXX 开头

...头【发布时间】:2012-02-0620:09:54【问题描述】:我想知道如何在Python中检查字符串是否以“hello”开头。在Bash中我通常这样做:if[["$string"=~^hello]];thendosomethingherefi如何在Python中实现相同的功能?【问题讨论】: 查看详情