[問題] 16進和10進轉換程式(8051)

看板ASM (組合語言)作者 (小D(滴))時間14年前 (2010/08/25 23:38), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
※ [本文轉錄自 C_and_CPP 看板 #1CTF8CRO ] 作者: fmdjyl (小D(滴)) 看板: C_and_CPP 標題: [問題] 16進和10進轉換程式(8051) 時間: Wed Aug 25 18:35:54 2010 0x01 = 1 0x09 = 9 0x0A = 10 0x0F = 15 0x15 = 21 0x20 = 32 ================================================== 請問我該如何把左邊的16進制變成右邊10進制的2位數呢?? 如0x20 我要變成兩個byte byte[1]=3 byte[0]=2 0x15 我要變成兩個byte byte[1]=2 byte[0]=1 不知道在C我該如何把接收到的16進換算兩個位數的10進制 懇請大家指教~先謝謝大家 ========================================================== 我把兩個10進位的數字換算成一個16進制 如下所示~但不知道什麼寫法換算回來比較好 Byte i; data=byte[1]; data(data<<4); data|=byte[0]; for(i=0x00;i<byte[1];i++) { data-=0x06; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.43.81

08/25 18:38,
sscanf、sprintf
08/25 18:38

08/25 18:47,
sscanf("0x%02X", &h); -> sprintf(s, "%d", h);
08/25 18:47

08/25 18:47,
或者也可以自己算,取"0x"後面兩位自己算.
08/25 18:47
※ 編輯: fmdjyl 來自: 219.85.43.81 (08/25 18:58)

08/25 19:46,
strtoul()
08/25 19:46

08/25 20:12,
不管你外面輸入進去的是幾進制,電腦內部存的都是二進制。
08/25 20:12

08/25 21:24,
好像都有現成的function可以呼叫
08/25 21:24
※ 編輯: fmdjyl 來自: 122.116.80.6 (08/25 23:26)

08/25 23:27,
不好意思 忘記說是8051...用C語言
08/25 23:27
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.80.6
文章代碼(AID): #1CTJZwGT (ASM)
文章代碼(AID): #1CTJZwGT (ASM)