黑马程序员技术交流社区
标题:
用更简单的方法实现输出基本数据类型的二进制位
[打印本页]
作者:
寇亮
时间:
2014-8-7 20:42
标题:
用更简单的方法实现输出基本数据类型的二进制位
本帖最后由 寇亮 于 2014-8-12 23:58 编辑
最近在自学C,总结了一些内容跟大家分享,希望能共同进步。
一、
输出整数的二进制位
void printBinary(int number)
{
int temp = (sizeof(number) << 3) – 1;
while(temp >= 0)
{
int value = number>> temp & 1;
printf(“%d”, value);
temp--;
}
}
复制代码
作者:
寇亮
时间:
2014-8-7 20:44
本帖最后由 寇亮 于 2014-8-12 23:59 编辑
二、输出基本数据类型的16进制位表示:
#include<stdio.h>
typedef unsigned char *byte_pointer;
void show_bytes(byte_pointer start,int len)
{
int i;
for(i=0;i<len;i++)
printf("%.2x ",start);
printf("\n");
}
void show_int(int x)
{
show_bytes((byte_pointer)&x,sizeof(int));
}
void show_short(short x)
{
show_bytes((byte_pointer)&x,sizeof(short));
}
void show_float(float x)
{
show_bytes((byte_pointer)&x,sizeof(float));
}
void show_pointer(void *x)
{
show_bytes((byte_pointer)&x,sizeof(void *));
}
复制代码
作者:
寇亮
时间:
2014-8-7 20:45
本帖最后由 寇亮 于 2014-8-7 22:14 编辑
第二种方法更加简便实用,而且没有多余的运算。能真实的反映出变量在内存中的存储属性。
作者:
寇亮
时间:
2014-8-8 09:04
本帖最后由 寇亮 于 2014-8-8 09:10 编辑
少写了一句,现已补全。谢谢提醒
作者:
天真
时间:
2014-8-8 10:02
加个好友一起学C吧
作者:
寇亮
时间:
2014-8-8 12:53
天真 发表于 2014-8-8 10:02
加个好友一起学C吧
怎么加好友?不太懂论坛操作呢
作者:
卡哇伊
时间:
2014-8-8 14:53
好办法 不过 这个 貌似 还有其他做法
作者:
王绍明
时间:
2014-8-22 13:36
你刚学,技术分怎么这么高
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2