首页 > 其他 > 详细

2、8、10、16进制输出

时间:2014-11-19 23:49:34      阅读:322      评论:0      收藏:0      [点我收藏+]

#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进制输出

原文:http://www.cnblogs.com/zhanbiqiang/p/4109349.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!