【已解决】使用位域解决整数二进制表示问题
位域是c语言的一个概念,他可以控制结构体的类型大小,如果溢出他自然会产生截取。根据这个特性,我们自然就可以用它来表示整数二进制,这个比写个函数不断取余数要方便得多,下面就是全部源码,并给出了运行的效果
#include<stdio.h>
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;
}
还没有评论,来说两句吧...