詳解C++中十六進(jìn)制字符串轉(zhuǎn)數(shù)字(數(shù)值)
詳解C++中十六進(jìn)制字符串轉(zhuǎn)數(shù)字(數(shù)值)
主要有兩個(gè)方法,其實(shí)都是對(duì)現(xiàn)有函數(shù)的使用:
方法1: sscanf()
函數(shù)名: sscanf
功 能: 從字符串格式化輸入
用 法: int sscanf(char *string, char *format[,argument,...]);
以上的 format 為 %x 就是將字符串格式化為 16 進(jìn)制數(shù)
例子:
#include <stdio.h>
void main()
{
char* p = "0x1a";
int nValude = 0;
sscanf(p, "%x", &nValude);
printf("%d\r\n", nValude);
}
輸出:
26
方法2: strtol()
函數(shù)名: strtol
功 能: 將字符串轉(zhuǎn)換為長(zhǎng)整數(shù)
用 法: long strtol(char *str, char **endptr, int base);
上面的base就是我們要轉(zhuǎn)換為幾進(jìn)制數(shù)
例子:
#include <stdio.h>
#include <stdlib.h>
void main()
{
char* p = "0x1b";
char* str;
long i = strtol(p, &str, 16);
printf("%d\r\n", i);
}
輸出:
27
其實(shí)還有一種方法,就是用一個(gè)初始化為0~9~a~f的字符串?dāng)?shù)組,也就是一個(gè)十六進(jìn)制對(duì)應(yīng)表,用這個(gè)對(duì)應(yīng)表即可算出一個(gè)十六進(jìn)制字符串的數(shù)值,但這種發(fā)發(fā)太麻煩了,不推薦使用。
如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
配置CLion管理Qt項(xiàng)目國(guó)際化支持的方法
這篇文章主要介紹了配置CLion管理Qt項(xiàng)目國(guó)際化支持的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
C語(yǔ)言輸入一個(gè)數(shù)判斷是否為素?cái)?shù)的多種方法
素?cái)?shù)是只能被1和它自己本身整除,不能被其他自然數(shù)整除的大于1的正整數(shù),下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言輸入一個(gè)數(shù)判斷是否為素?cái)?shù)的多種方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
淺析C語(yǔ)言中strtol()函數(shù)與strtoul()函數(shù)的用法
這篇文章主要介紹了淺析C語(yǔ)言中strtol()函數(shù)與strtoul()函數(shù)的用法,注意其將字符串轉(zhuǎn)換成long型的區(qū)別,需要的朋友可以參考下2015-08-08
在C++中高效使用和處理Json格式數(shù)據(jù)的示例代碼
最近的項(xiàng)目在用c處理后臺(tái)的數(shù)據(jù)時(shí),因?yàn)楹枚嗤獠拷涌诙荚谑褂肑son格式作為返回的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)描述,如何在c中高效使用和處理Json格式的數(shù)據(jù)就成為了必須要解決的問(wèn)題,需要的朋友可以參考下2023-11-11
C++類中const修飾的成員函數(shù)及日期類小練習(xí)
將const修飾的“成員函數(shù)”稱之為const成員函數(shù),const修飾類成員函數(shù),表明在該成員函數(shù)中不能對(duì)類的任何成員進(jìn)行修改,下面這篇文章主要給大家介紹了關(guān)于C++類中const修飾的成員函數(shù)及日期類小練習(xí)?的相關(guān)資料,需要的朋友可以參考下2023-01-01

