C++进制转换的实例
一个面试题,要求输入十进制数,输出十六进制,可以使用printf打印%d,%c,%s来输出,但不能使用 %x 打印。
写了两种算法,还算比较简洁,粘贴在此。
// 第一种算法,从低位到高位扫描移位,需要一个数组辅助倒序,一次性输出结果
#include <stdio.h>
#define MAX_HEX_NUM 16
#define OUT_DATA_LEN sizeof(int)*2 // 2个16进制数表示1个字节
static char Hex_Char_Table[MAX_HEX_NUM] = {
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
};
int ten2hex( int data )
{
char result[OUT_DATA_LEN+1];
int i,index;
result[OUT_DATA_LEN] = '