從數字組成的字串轉化為十進位制數步驟如下:
1、挨個讀取陣列,從第0位開始
2、將字元轉化為數字。比如從
'1'
轉化為1。可以參考ascii碼表,字元
'0'
是48,所以只需要將字元減去48即可。
3、將前乙個計算出的十進位制數(初始化為0)乘以10加上第二步計算出的數字。
4、迴圈1-3步直到讀取完陣列內所有內容。
之所以這樣算需要舉個例子:比如陣列內內容是
'1'
,
'5'
,
'9'
。計算結果肯定是159。這個159等於1*100+5*10+9*1。我們定義變數s來作為結果(初始化為0)。
1、挨個讀取陣列,從第0位開始
2、將字元轉化為數字。比如從
'1'
轉化為1。可以參考ascii碼表,字元
'0'
是48,所以只需要將字元減去48(或減『0』)即可。在十六進製制中,有abcdef,直接轉化為10 11 12 13 14 15即可,不可以減48,因為a的ascii碼為65,減完是17,不符合。
3、將前乙個計算出的十六進製制數(初始化為0)乘以16加上第二步計算出的數字。
4、迴圈1-3步直到讀取完陣列內所有內容。
#include #include #include int main()
ndec += (temp*pow(16,len-1-i));
} printf("%i64d",ndec);
return 0;
}
long long定義方式可以用於gcc/g++,不受平台限制,但不能用於vc6.0。__int64是win32平台編譯器64位長整型的定義方式,不能用於linux。
「%lld」用於linux i386平台編譯器,」%i64d」用於win32平台編譯器。cout只能用於c++編譯,在vc6.0中,cout不支援64位長整型。
十六進製制轉十進位制
create function fn hextobinary hex varchar 8 returns varchar 255 asbegin declare base tinyint declare string varchar 255 declare return varchar 255 de...
十進位制轉十六進製制
問 題 描 述 十 六 進 制 數 是 在 程 序 設 計 時 經 常 要 使 用 到 的 一 種 整 數 的 表 示 方 式 它 有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f 共 16 個符號,分別表示十進位制數的 0 15。十六進製制的計數方法是滿16 進 1,所以十進位制數...
十六進製制轉十進位制
問題描述 從鍵盤輸入乙個不超過8位的正的十六進製制數字串,將它轉換為正的十進位制數後輸出。注 十六進製制數中的10 15分別用大寫的英文本母a b c d e f表示。樣例輸入 ffff 樣例輸出 65535 include include includeint main int len,i,j d...