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

谁借莪1个温暖的怀抱¢ 2024-04-20 04:15 155阅读 0赞

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

  1. #include<stdio.h>
  2. struct bits {
  3. unsigned char ch1 : 1;
  4. unsigned char ch2 : 1;
  5. unsigned char ch3 : 1;
  6. unsigned char ch4 : 1;
  7. unsigned char ch5 : 1;
  8. unsigned char ch6 : 1;
  9. unsigned char ch7 : 1;
  10. unsigned char ch8 : 1;
  11. };
  12. int main() {
  13. int num = -1;
  14. struct bits* p = &num;
  15. int i = 4;
  16. while (i--) {
  17. printf("%d%d%d%d%d%d%d%d", (p + i)->ch8,
  18. (p + i)->ch7,
  19. (p + i)->ch6,
  20. (p + i)->ch5,
  21. (p + i)->ch4,
  22. (p + i)->ch3,
  23. (p + i)->ch2,
  24. (p + i)->ch1
  25. );
  26. printf(" ");
  27. }
  28. system("pause");
  29. return 0;
  30. }

运行效果

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,155人围观)

还没有评论,来说两句吧...

相关阅读

    相关 使用jsonp解决问题

    在ajax的使用中,Jsonp可以解决跨域问题,不过需要服务端的接口做处理。 当然,如果自己玩的话,可以用一个浏览器插件即可解决跨域问题。 客户端的请求如下: