詳解C++中十六進(jìn)制字符串轉(zhuǎn)數(shù)字(數(shù)值)
成都創(chuàng)新互聯(lián)公司是一家專注于做網(wǎng)站、網(wǎng)站建設(shè)與策劃設(shè)計(jì),魚臺(tái)網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:魚臺(tái)等地區(qū)。魚臺(tái)做網(wǎng)站價(jià)格咨詢:028-86922220
主要有兩個(gè)方法,其實(shí)都是對(duì)現(xiàn)有函數(shù)的使用:
方法1: sscanf()
函數(shù)名: sscanf
功 能: 從字符串格式化輸入
用 法: int sscanf(char *string, char *format[,argument,...]);
以上的 format 為 %x 就是將字符串格式化為 16 進(jìn)制數(shù)
例子:
#includevoid 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#include 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ì)本站的支持!