c语言结构体位段知识,使用位段不需要计算直接以二进制形式输出十进制数字
作者:互联网
计算机存储数据方式
计算机存储都是以二进制方式存储, 那么可能很多人不知道存储机制是啥, 分为大端存储,和小端存储
大端存储是正序存储, 小端存储 是逆序,注意是每个位的逆序!!!
这里就不细说了,下面我们就用这个知识写一个程序 直接以二进制的方式输出十进制数字
定义一个整形int num = 1314520 ; 二进制数字是 0000 0000 0001 0100 0000 1110 1101 1000
在这里插入代码片
#include <stdio.h>
typedef struct _stult {
unsigned char bit1 : 1;
unsigned char bit2 : 1;
unsigned char bit3 : 1;
unsigned char bit4 : 1;
unsigned char bit5 : 1;
unsigned char bit6 : 1;
unsigned char bit7 : 1;
unsigned char bit8 : 1;
}STU,*LPSTU;
int main()
{
//整数这么大一个数 10进制的
int num = 1314520;
//指针
LPSTU p = #
//获取num的整个字节
int len = sizeof(num);
//因为计算器是小端存储 ,所以要从后往前输出
while (len--)
{
printf("%d%d%d%d %d%d%d%d ", ( p + len )->bit8, ( p + len )->bit7, ( p + len )->bit6, ( p + len )->bit5, ( p + len )->bit4,
( p + len )->bit3, ( p + len )->bit2, ( p + len )->bit1);
}
while (1);
return 0;
}
标签:char,存储,d%,unsigned,len,位段,num,体位,十进制 来源: https://blog.csdn.net/qwe7758521123zxc/article/details/112261620