第15節(jié):十進制與十六進制
十六進制是二進制的縮寫形式,而C語言程序里只用了十進制和十六進制這兩種書寫格式。它們各有什么應用特點?十六進制方便人理解機器,通常應用在配置寄存器,底層通訊驅(qū)動,底層IO口驅(qū)動,以及數(shù)據(jù)的移位,轉(zhuǎn)換和合并等場合。而十進制則方便人理解值的大小,在應用層經(jīng)常用??傊?,進制只是數(shù)據(jù)的表現(xiàn)形式而已。
本文引用地址:http://m.butianyuan.cn/article/201611/319825.htm十進制與十六進制如何相互轉(zhuǎn)換?其實很多教科書上有介紹它們之間如何通過手工計算進行轉(zhuǎn)換的方法。但是實際應用中,我從來沒有用過這種手工計算方法,我用的方法是最簡單直接的,就是借助電腦自帶的計算器進行轉(zhuǎn)換即可。現(xiàn)在把這種方法介紹給大家。
第一步:點擊電腦左下角“開始”菜單,在下拉菜單中把鼠標移動到“所有程序”,在下拉菜單中把鼠標移動到“附件”,在下拉菜單中點擊“計算器”,此時會彈出“計算器” 的窗口。
第二步:點擊計算器窗口上面的“查看”菜單,在下拉菜單中點擊“科學型”,此時“計算器” 的窗口會變長。按鍵上方出現(xiàn)“十六進制”,“十進制”,“八進制”,“二進制”等單選項。
第三步:在按鍵上方“十六進制”,“十進制”,“八進制”,“二進制”等單選項中,單擊所要切換到的進制,然后按數(shù)字按鍵輸入數(shù)據(jù)。輸完數(shù)據(jù)后,再單擊切換到所要轉(zhuǎn)換的進制中,即可完成各進制的數(shù)據(jù)切換。注意,在切換到“十六進制”的時候,在右邊“四字”,“雙字”,“單字”,“字節(jié)”中選中“四字”。
第四步:把十進制轉(zhuǎn)換到十六進制的方法如下:單擊切換到“十進制”,然后按數(shù)字按鍵輸入數(shù)據(jù)。輸完數(shù)據(jù)后,再單擊切換到“十六進制”,即可完成進制的轉(zhuǎn)換。比如輸入十進制的“230”,切換到十六進制就變成了“E6”。
第五步:把十六進制轉(zhuǎn)換到十進制的方法如下:單擊切換到“十六進制”,然后按數(shù)字按鍵輸入數(shù)據(jù)。輸完數(shù)據(jù)后,再單擊切換到“十進制”,即可完成進制的轉(zhuǎn)換。比如輸入十六進制的“AC”,切換到十進制就變成了“172”。
現(xiàn)在我們編寫一個程序來觀察十進制和十六進制的關(guān)系,最后把程序編譯后下載到堅鴻51學習板觀察結(jié)果。請直接復制第十節(jié)模板程序,修改的main程序代碼如下:
void main() //主程序
{
/*---C語言學習區(qū)域的開始---------------------------------------------------------------------------*/
unsigned char a; //定義一個變量a,并且分配了1個字節(jié)的RAM空間。
unsigned char b; //定義一個變量b,并且分配了1個字節(jié)的RAM空間。
a=230; //把十進制的230賦值給變量a,在朱兆祺51學習板上觀察一下它的十六進制是不是E6。
b=0xAC; //把十六進制的AC賦值給變量b,在朱兆祺51學習板上觀察一下它的十進制是不是172。
GuiWdData0=a; //把變量a這個數(shù)值放到窗口變量0里面顯示
GuiWdData1=b; //把變量b這個數(shù)值放到窗口變量1里面顯示
/*---C語言學習區(qū)域的結(jié)束---------------------------------------------------------------------------*/
while(1)
{
initial();
key_service();
display_service();
}
}
如何在堅鴻51學習板上觀察十進制和十六進制?S1和S5按鍵是切換窗口按鍵。按住S9按鍵不松手,就可以觀察當前窗口數(shù)據(jù)的十六進制格式了。松開S9按鍵就是當前窗口的十進制數(shù)據(jù)格式。而堅鴻51學習板右上角的16個LED燈就代表了當前窗口的二進制,亮的代表1,滅的代表0。
上堅鴻51學習板觀察程序執(zhí)行的結(jié)果如下:
十六進制 十進制
unsigned char變量a E6 230
unsigned char變量b AC 172
詳細圖解步驟:bbs.21ic.com/forum.php
下節(jié)預告:判斷語句“if”和等于關(guān)系符“==”。
評論