將乙個表述16進製制數的字串轉化為整型變數

2021-09-26 14:09:04 字數 483 閱讀 7948

c語言提供的函式atoi只能將表述十進位制數的字串轉化為整型變數,但處理"0x0a"這樣的字串是不能返回正確取值的。本文採用兩種辦法,實現16進製制字串的正確讀取。

1)可以借助函式sscanf,來看下面的例子。

可見,0x0a成功的轉化為10,儲存到了iret中。

2)strtol函式,這個函式依賴stdlib.h

p儲存了16進製制字串的內容,16表明了內容代表的進製,strtol的返回值代表了轉化結果。

這裡,變數endptr只在變數p中存在非法字元時才起作用,比如說16進製制的合法字元是0-9,a-f,那麼g就是非法字元。按照的說法,「第乙個非法字元的位址,被賦給endptr」.

16進製制轉字串 字串轉16進製制

16進製制轉字串 void hextostr char pbdest,char pbsrc,int nlen pbdest nlen 2 0 字串轉16進製制 void strtohex char pbdest,char pbsrc,int nlen 一 將陣列轉換為十六進製製同值的字串 讀取陣列中...

C 將10進製字串轉為16進製制字串

方法一 推薦 直接除以16進行計算 對結果遞迴進行轉換運算 如下 include include using namespace std string decinttohexstr long long num string decstrtohexstr string str int main ret...

Qt 將字串轉成16進製制顯示

最近專案用到了需要將字串轉換成16進製制顯示。這玩意折騰了一上午。首先,資料塊內容 struct userdata char flag 1 0x30 char x position 1 0x30 char y position 0x30 char sum head 0 head 1 head 2 f...