詳解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ā)太麻煩了,不推薦使用。
如有疑問請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
c++11?類中關(guān)于default、explict、implicit、noexcept、final的詳解
這篇文章主要介紹了c++11?類中關(guān)于default、explict、implicit、noexcept、final的詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-11-11更優(yōu)雅的C++字符串格式化實(shí)現(xiàn)方法詳解
在用C++編寫代碼時(shí),經(jīng)常需要用到字符串拼接及格式化,尤其是在拼寫sql語(yǔ)句時(shí)。所以本文為大家介紹了更優(yōu)雅的C++字符串格式化實(shí)現(xiàn)方法,希望對(duì)大家有所幫助2023-04-04C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)超詳細(xì)講解單向鏈表
鏈表可以說是一種最為基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)了,而單向鏈表更是基礎(chǔ)中的基礎(chǔ)。鏈表是由一組元素以特定的順序組合或鏈接在一起的,不同元素之間在邏輯上相鄰,但是在物理上并不一定相鄰。在維護(hù)一組數(shù)據(jù)集合時(shí),就可以使用鏈表,這一點(diǎn)和數(shù)組很相似2022-03-03C語(yǔ)言實(shí)現(xiàn)餐飲管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)餐飲管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Pipes實(shí)現(xiàn)LeetCode(194.轉(zhuǎn)置文件)
這篇文章主要介紹了Pipes實(shí)現(xiàn)LeetCode(194.轉(zhuǎn)置文件),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08