首页 > 代码库 > 2、8、10、16进制输出
2、8、10、16进制输出
#include <stdio.h>
#include <stdlib.h>
typedef short type; //进行二进制转换的数据类型/********************************************************************************
* Description:本函数实现 将type类型的数据以二进制形式输出
* Input Args:待输出的原始数据
* Return Value:void
********************************************************************************/
void binary_output(type a)
{
int i;
type b;
char *ptr = (char *)malloc(8*sizeof(a));
ptr += 8*sizeof(a); //将指针指向分配的空间的末尾,便于下面的赋值
for(i=8*sizeof(a)-1;i>0;i--) //循环次数减一,否则ptr最后就多减了,从而指向的不是分配的首地址了
{
b = a&1;
*ptr-- = b+‘0‘; //试过不用间接数据b,但是会出错
a >>= 1;
}
b = a&1;
*ptr = b+‘0‘;printf("二进制:%s\n",ptr);
free(ptr);
}
int main (int argc, char **argv)
{
type a = 12;
printf("十进制:%d\n",a);
printf("八进制:%o\n",a);
printf("十六进制:%0x\n",a);
binary_output(a);
printf("地址形式:%#x\n",a);
printf("地址形式:%p\n",a);
return 0;
}输出
十进制:12
八进制:14
十六进制:c
二进制:0000000000001100
地址形式:0xc
地址形式:0xc
2、8、10、16进制输出