1樓:僕聽雲龐淼
這個就是乙個16進製製數轉10進製的程式
先以字串方式逐字元讀入16進製製數
然後對每個讀入的字元依次做判斷
t=s[i]-'0'
//臨時變數t為當前判斷的字串的ascii碼值減去字元'0'的ascii碼值,這一步的作用是將字元型轉換為整型以供計算
if(t<=9)
k=k*16+s[i]-'0'
//如果t≤9,說明原字元為'0'~'9',轉換後直接得到對應數字0~9,因此直接將這個數字轉換為十進位制即可:k=k*16+s[i]-'0'即將當前位轉換為十進位制
else
k=k*16+s[i]-'a'+10
//如果t>9,說明原字元為'a'~'f',轉換後不能得到對應數字,必須通過s[i]-'a'+10把字元'a'~'f'轉換為數字10~15,再逐位轉換為十進位制。
2樓:巨昶釁琇
主要有兩個方法,其實都是對現有函式的使用:
1、方法1:
sscanf()
函式名:
sscanf
功 能:
從字串格式化輸入
用 法:
intsscanf(char
*string,
char
*format[,argument,...]);
以上的format為%x
就是將字串格式化為
16進製製數
例子:#include
void main()
輸出:262、方法2:
strtol()
函式名:
strtol
功 能:
將字串轉換為長整數
用 法:
long
strtol(char
*str,
char
**endptr,
intbase);
上面的base就是我們要轉換為幾進製數
例子:#include
#include
void main()
輸出:27
3樓:亓鴻熙賞嫣
初一看,還以為是要把11進製數轉化為16進製製數,其實16進製製數就是由0~9十個數字以及a~f六個字母組成上面就是16進製製數,我猜你是要把它改為純數字表示,因為我們已經看慣了十進位製數
C語言求錯誤,16進製制變為10進製
include user code begin 考生可在本行後新增 例如全域性變數的定義 函式原型宣告等,行數不限 include int change char str,long int result10 user code end 考生新增 結束 int main void else retur...
c語言二進位制八進位制十進位制16進製制怎麼轉換
在程式設計時直接用格式化輸出函式,d表示以十進位制輸出,o表示以八進位制輸出,x表示以十六進位制輸出 這樣可以實現不同進製之間的轉換 c語言程式設計二進位制整數向八進位制 十進位制 十六進位制整數的轉換 include void showbit int n printf d n 2 void sho...
c把任意數轉換16進製制,c 中數值轉換和16進製制運算問題?
int i 16 console.writeline i.tostring x 十六進位制 console.writeline i.tostring d 十進位制 自己看吧 雖然得100分自己都感覺到不好意思 convert.toint32 textbox1.text.trim 2 convert....