輸入十進位制數,輸出十六進製制

2021-09-21 19:06:45 字數 694 閱讀 5096

寫了兩種演算法,還算比較簡潔,貼上在此。        

// 第一種演算法,從低位到高位掃瞄移位,需要乙個陣列輔助倒序,一次性輸出結果 

#include 

#define max_hex_num 16 

#define out_data_len sizeof(int)*2 

// 2個16進製制數表示1個位元組

static

char

hex_char_table[max_hex_num] = ;  

intten2hex( 

intdata )  

printf("0x%s\n"

,result);  

return

0;  

}  下面是第二種演算法,從高位向低位掃瞄,得到結果直接列印。

#include 

#define bits_of_int   sizeof(int)*8  // int的位數

#define out_data_len  sizeof(int)*2  // 2個16進製制數表示1個位元組

intprinthex( 

intnum ) 

printf("\n"

); } 

兩種演算法其實都是採用移位的方式來運算,而不是採用除法,這樣會更加高效一些,我想這個題目的考點應該也在這裡吧。

十進位制 十六進製制

把十進位制整數轉換為十六進製制,格式為0x開頭,10 15由大寫字母a f表示。input 每行乙個整數x,0 x 2 31。output 每行輸出對應的八位十六進製制整數,包括前導0。sample input 0 1023 sample output 0x00000000 0x000003ff 水...

十六進製制轉十進位制

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,所以十進位制數16在十六進製制中是10,而十進位制的17在十六進製制中是11,以此類推...