寫了兩種演算法,還算比較簡潔,貼上在此。
// 第一種演算法,從低位到高位掃瞄移位,需要乙個陣列輔助倒序,一次性輸出結果#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,以此類推...