1樓:匿名使用者
long ltemp = strtol("0xa10b", null, 16);
這樣的話,就將0xa10b這個十六制形式的字串轉為十進位制的數字了.
注:strtol的功能就是將字串轉為數字,而後面的16就是進位制,根據需要,你可以是二進位制,八進位制,十進位制,或是十六進位制應該都是可以的.
2樓:匿名使用者
如果出現以下情形之一,則丟擲 numberformatexception 型別的異常:
1.第一個引數是 null 或零長度的字串。
2.radix 小於 character.min_radix 或者大於 character.max_radix。
3.任何字串的字元都不是指定基數的數字,除非第一個字元是減號 '-' ('\u002d'),假定字串的長度大於 1。
4.字串表示的值不是 long 型別的值。
long的取值範圍:-9223372036854775807 ~ 9223372036854775808
小於ffffffffffffffff的值 顯然無法轉換了
c++,16進位制轉化問題,字串轉化成數字
3樓:匿名使用者
方法1:
#include
int main()
主要用到sscanf這個庫函式:
函式名: sscanf
功 能: 執行從字串中的格式化輸入
用 法: int sscanf(char *string, char *format[,argument,...]); //%x就是我們要格式化的型別,即輸出十六進位制
方法2:
#include
#include //strtol標頭檔案
int main()
主要用到strtol這個庫函式,它的使用方法是:
函式名: strtol
功 能: 將串轉換為長整數
用 法: long strtol(char *str, char **endptr, int base);//base指明我們要轉換為幾進位制數
4樓:匿名使用者
不明你什麼意思,能再清晰地描述一下嗎?
c語言如何把11位16進位制字串轉成16進位制數? 5
5樓:會飛的小兔子
#include
#include
voidmain()
//輸出值為27
引數base代表採用的進位制方式,如base值為10則採用10進位制,若base值為16則採用16進位制等。當base值為0時則是採用10進製做轉換,但遇到如』0x』前置字元則會使用16進製做轉換、遇到』0』前置字元而不是』0x』的時候會使用8進製做轉換。
擴充套件資料c語言十進位制轉2~16進位制
#include
voidtrans(intdata,intbase)for(k=i-1;k>=0;k--)
if(x[k]<10)
printf("%d",x[k]);
elseif(x[k]<=16)
printf("%c",'a'+x[k]-10);
}intmain(void)
trans(num,base);
printf("\n");
return0;}
6樓:匿名使用者
主要有兩個方法,其實都是對現有函式的使用:
1、方法1: sscanf()
函式名: sscanf
功 能: 從字串格式化輸入
用 法: int sscanf(char *string, char *format[,argument,...]);
以上的 format 為 %x 就是將字串格式化為 16 進位制數例子:#include
void main()
輸出:26
2、方法2: strtol()
函式名: strtol
功 能: 將字串轉換為長整數
用 法: long strtol(char *str, char **endptr, int base);
上面的base就是我們要轉換為幾進位制數
例子:#include
#include
void main()
輸出:27
7樓:董俊錕
初一看,還以為是要把11進位制數轉化為16進位制數,其實16進位制數就是由0~9十個數字以及a~f六個字母組成上面就是16進位制數,我猜你是要把它改為純數字表示,因為我們已經看慣了十進位制數
8樓:放狗大師
恐怕沒有函式可以直接用了。
自己寫個函式遍歷字串即可。
9樓:紫翼魔狼
/* strtol example */
#include #include int main ()
10樓:匿名使用者
使用strtol這個方法應該可以實現你要的功能
11樓:
寫程式自己算就可以了呀,自己能寫不?
12樓:匿名使用者
char sztmp[12] = ;
__int64 nret = 0;
for (int i = 10; i >= 0; i--)else if (sztmp[i] >= 'a' && sztmp[i] <= 'f')
else
for (int j = 10; j > i; j--)nret += ntmp;}
13樓:匿名使用者
#define usrprinthex(hex) {byte bufhex; bufhex=hex>>4;\
if(bufhex<=9)\
puart->write('0'+bufhex);
else puart->write('a'+bufhex-0x0a);\
excel中,什麼樣的公式可以把表示十六進位制數的字串轉為數字?
14樓:匿名使用者
公式=hex2dec()是將十
六進位制的數轉換成十進位制的數的。
公式=dec2hex()是將十進位制數轉換成十六進位制數的。
如果以上公式不可用,請按以下操作:
在「工具」選單上,單擊「載入巨集」。選中「分析工具庫」框,再單擊「確定」。
15樓:匿名使用者
使用函式hex2dec()
在delphi下,怎麼能快速的將16進位制字串轉化為整型量
16樓:匿名使用者
兩種方法:假設16進位制字串為「1f」
方法一: strtoint('0x' + 『1f』)
方法二:strtoint('$' + 『1f』)
17樓:水木葫蘆娃
varn, k:integer;
s : string;
begin
n := 255;
s := inttohex(n,2);
showmessage('255的16進製為: ' + s);
k := strtoint('$' + s);
showmessage('16進位制' + s + '的整型為:' + inttostr(k));
end;
end;
18樓:匿名使用者
/r 加前頭 然後直接轉換
16進位制字串轉換為數字,這段**有點看不懂,請教一下高手,謝謝!
19樓:匿名使用者
uint32 atoitok(char *digit_str, uint8 digit_len)
else if ((*digit_str >= 'a') && (*digit_str <= 'f'))
else
number = number * 10 + temp_value; //將前次得到的結果*10後加上這位的數值
digit_str++; //下一個字元
digit_len--; //字元數減一
}return number;
}程式中number=number*10+temp_value;是轉換10進位制的計算方法,對於16進位制數應該是number=number*16+temp_value;
比如輸入的是1a5,number經過三次迴圈分別等於:1,1*16+10=26,26*16+5=421
如何將一個16進位制字串轉化成10進位制字串
20樓:信玄居士
16進位制轉10進位制:
像10進位制數一樣的說,把16進位制數看成有個位數,十位數,百位數……將「個位數」乘上16的0次方(*16^0),將「十位數」乘上16的1次方(*16^1),將「百位數」乘上16的2次方(*16^2),…………
最後將所有上面得到的數加起來就是他的十進位制數了例如:將16進位制的 (10a) 轉換成10進位制的數a*1=10
0*16=0
1*16^2=256
所以所得的數為10+0+256=266
10進位制轉16進位制:
這個有點麻煩……
將給定的十進位制整數除以基數16,餘數便是等值的16進位制的最低位。
將上一步的商再除以基數16,餘數便是等值的16進位制數的次低位。
重複上一步驟,直到最後所得的商等於0為止。各次除得的餘數,便是16進位制各位的數,最後一次的餘數是最高位
例如:10進位制的 (100) 變為16進位制先把100除以16,得到6餘數為4,則「個位數」為4;
用6除以16,得到0餘數為6,則「十位數」為6。所以100的16進製為「64」。
依此類推。
注:a=10 b=11 c=12 d=13 e=14 f=15
sql 中to_number將數字字串轉換成了16進位制,有沒有辦法轉換成10進位制?
16進位制轉成同樣格式顯示的字串?
21樓:
char buf[(hexstr_len+1)*2+1];
int i;
for(i=0;i 由於資料在計算機中的表示,最終以二進 制的形式存在,所以有時候使用版二進位制,可權以更直觀地解決問題。但,二進位制數太長了。比如int 型別佔用4個位元組,32位。比如100,用int型別的二進位制數表達將是 0000 0000 0000 0000 0110 0100 面對這麼長的數進行思考或操作,... 你可以叫 stringstream 和 vector 幫忙。下面的 裡 dbl array 既是你要建立的實數陣列 real 代表你讀到的字串 include include include using namespace std int main 值得一提的是,vector 可以被當成陣列來用,而... 192轉換為二進位制數方法是除2取餘反向輸出如下 192 2 商96 餘0 96 2 商48 餘0 48 2 商24 餘0 24 2 商12 餘0 12 2 商6 餘0 6 2 商3 餘0 3 2 商1 餘1 1 2 商0 餘1 結果為 11000000 再轉換為十進位制是,從最右邊開始 2 0 0...怎麼把字串轉換成16進位制資料,怎麼把一個字串轉換成16進位制資料
c字串如何轉化為數字C,怎麼把字元轉換成數字
數字「192」轉換成二進位制數,再轉換成十進位制