您的位置:首页 > 编程语言 > C语言/C++

C语言小函数—二进制与十六进制

2017-07-18 10:39 103 查看
#define SIZE 32
char *dec_bin(long num)
{
int i = SIZE;
char *buff = (char*)malloc(SIZE + 1);
buff[SIZE] = '\0';
memset(buff, '0', SIZE);
while (num)
{
buff[--i] = num % 2 + '0';
num=num / 2;
}
return buff;
}
char *dec_hex(long num)
{
int i;
char *buffer = (char*)malloc(11);
buffer[0] = '0';
buffer[1] = 'x';
buffer[2] = '\0';
char *temp = buffer + 2;
for (i = 0; i < 8; i++)
{
temp[i] = (char)(num << 4 * i >> 28);
temp[i] = temp[i] >= 0 ? temp[i] : temp[i] + 16;
temp[i] = temp[i] < 10 ? temp[i] + 48 : temp[i] + 55;
}
temp[i] = '\0';
return buffer;
}


测试如下

“`

int main()

{

long int num = 15;

printf("num:%s\n", dec_bin(num));
printf("num:%s\n", dec_hex(num));
system("pause");
return 0;


}

“`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息