【已解决】使用位域解决整数二进制表示问题

位域是c语言的一个概念,他可以控制结构体的类型大小,如果溢出他自然会产生截取。根据这个特性,我们自然就可以用它来表示整数二进制,这个比写个函数不断取余数要方便得多,下面就是全部源码,并给出了运行的效果

#include
struct bits {
	unsigned char ch1 : 1;
	unsigned char ch2 : 1;
	unsigned char ch3 : 1;
	unsigned char ch4 : 1;
	unsigned char ch5 : 1;
	unsigned char ch6 : 1;
	unsigned char ch7 : 1;
	unsigned char ch8 : 1;


};
int main() {
	int num = -1;
	struct bits*  p = #
	int i = 4;
	while (i--) {
		printf("%d%d%d%d%d%d%d%d", (p + i)->ch8,
			(p + i)->ch7,
			(p + i)->ch6,
			(p + i)->ch5,
			(p + i)->ch4,
			(p + i)->ch3,
			(p + i)->ch2,
			(p + i)->ch1
			);
		printf(" ");
	}
	system("pause");
	return 0;
}

运行效果

在这里插入图片描述

你可能感兴趣的:(课外学习cpp,算法,数据结构)