码迷,mamicode.com
首页 > 其他好文 > 详细

2、8、10、16进制输出

时间:2014-11-19 23:52:31      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:des   io   ar   sp   for   数据   on   bs   amp   

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

标签:des   io   ar   sp   for   数据   on   bs   amp   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!