當前位置:編程學習大全網 - 編程軟體 - 單片機中,如何將16進制轉換為ASC碼?

單片機中,如何將16進制轉換為ASC碼?

1. 16進制數為0~F的組合(例如3FFF, 就像10進制數是0~9的組合壹樣), 而ASCII碼是壹組符號集合,

它用壹個8位(壹個字節)的二進制數來表示字符(因為計算機用二進制數來運算), 其中0~9對應的二進制數為0x30~0x39,

A~F對應的二進制數為0x41~0x46 (小寫a~f為0x61~0x66).

2. 將16進制數轉換為ASCII碼就是將0~F轉換為字符"0"~"F" (在計算機存儲的表示為0x30~0x46). 轉換的算法可以多種, 比較簡單的算法如下:

a) 定義壹個數組

const byte ASCII[]={0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,

0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46}; // byte 為壹個字節的定義

假設i為存儲單個16進制的數字, 則用ASCII[i]即可獲得相應的ASCII碼

b) 也可以用計算的方式

假設i中存儲單個16進制的數字,

if (i > 9)

{

ascii = 0x40 + (i - 9); // A~F

}

else

{

ascii = 0x30 + i; // 0~9

}

3. 多位數的16進制數可以通過逐位分解實現, 例如0x3AD0, 可以分解為3, A, D, 0轉換. 每位16進制數占半個字節, 所以很容易利用移位(連續左移4bits)進行分離.

  • 上一篇:軋鋼在線測徑系統都帶來了哪些成果?
  • 下一篇:理念的英文
  • copyright 2024編程學習大全網