其他分享
首页 > 其他分享> > c语言结构体位段知识,使用位段不需要计算直接以二进制形式输出十进制数字

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;
	//获取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