1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. /*
  6. 有符号 结构体1
  7. */
  8. struct bits
  9. {
  10. int b1:5;
  11. /*
  12. 由于是int型,最大设置32位。由于int型是有符号整形,
  13. 所以这里5位为有符号类型。
  14. 11111 -1
  15. 10000 -16
  16. 01111 15
  17. 00000 0
  18. */
  19.  
  20. int :2;
  21.  
  22. int b2:2;
  23. /*
  24. 11 -1
  25. 10 -2
  26. 01 1
  27. 00 0
  28. */
  29.  
  30. int b3:1;
  31. /*
  32. 1 -1
  33. 0 0
  34. */
  35.  
  36. };
  37.  
  38. /*
  39. 无符号 结构体2
  40. */
  41. struct bits
  42. {
  43. unsigned int b1:5;
  44. unsigned int :2;
  45. unsigned int b2:2;
  46. unsigned int b3:1;
  47. };
  48.  
  49. int
  50. main()
  51. {
  52. struct bits b;
  53. // int a = 0b1111111111111111;
  54. int a = 0b0100110101000101;
  55.  
  56. memcpy(&b, &a, sizeof(b));
  57. // memcpy(&b, "EM", sizeof(b));
  58. printf("0x%X\n", b);
  59. printf("b.b1 = %d\n", b.b1);
  60. printf("b.b2 = %d\n", b.b2);
  61. printf("b.b3 = %d\n", b.b3);
  62. }
  63. /*
  64. int a = 0b0100110101000101;
  65. 0x4D45
  66. b.b1 = 5
  67. b.b2 = -2
  68. b.b3 = 0
  69.  
  70. int a = 0b1111111111111111;
  71. 0xFFFF
  72. b.b1 = -1
  73. b.b2 = -1
  74. b.b3 = -1
  75.  
  76. int a = 0b0100110101000101;
  77. 0x4D45
  78. b.b1 = 5
  79. b.b2 = 2
  80. b.b3 = 0
  81.  
  82. int a = 0b1111111111111111;
  83. 0xFFFF
  84. b.b1 = 31
  85. b.b2 = 3
  86. b.b3 = 1
  87.  
  88. */

结构体位制 中存在 有符号 与 无符号 -- C的更多相关文章

  1. 深入理解计算机系统(2.4)---C语言的有符号与无符号、二进制整数的扩展与截断

    开篇请各位猿友允许LZ啰嗦几句,最近一直在写计算机系统原理这系列文章,也已经下定决心要把这本书的内容写完.主要目的其实是为了巩固LZ的理解,另外也想把这些内容分享给猿友们,毕竟LZ觉得这些内容对程序猿 ...

  2. C语言的有符号与无符号,二进制整数的扩展与截断

    C语言的有符号与无符号,二进制整数的扩展与截断 前一节说了整数的表示方式,,也就是无符号编码与补码编码.这一届说一下二进制整数的扩展与截断,这部分内容与C语言挂钩.so,我们先看下面C语言的有符号和无 ...

  3. Java-java中的有符号,无符号操作以及DataInputStream

    1. 无符号和有符号 计算机中用补码表示负数,并且有一定的计算方式:另外,用二进制的最高位表示符号,0表示正数.1表示负数.这种说法本身没错,可是要有一定的解释,不然它就是错的,至少不能解释,为什么字 ...

  4. int有符号和无符号类型内存 -- C

    /* int 有符号 0xffffffff == -1 0xfffffffe == -2 最小 0x80000000 == -21 4748 3648 最大 0x7fffffff == 21 4748 ...

  5. java中有符号和无符号数据类型发生转换

    package com.itheima.test01;/* * byte short int long float double 是有符号位的数 * char boolean 是无符号位的数 * 补码 ...

  6. C语言进阶——有符号与无符号02

    在计算机的内部,我们所有的信息都是由二进制数字组成的 有符号数的表实法: 在计算机内部用补码的方式表实有符号数 正数的补码位正数的本身 负数的补码为其绝对值取反然后加一得到 例如-7 他在计算机内部的 ...

  7. char类型到底是有符号还是无符号

    根据c标准,char类型到底是有符号整数类型还是无符号整数类型,这取决于c实现,也就是c编译器的作者的想法:( 那么,如何快速的编写一个检测程序,查看当前编译器如何对char进行定义? #includ ...

  8. Java-java中无符号类型的处理

    在Java中,不存在Unsigned无符号数据类型,但可以轻而易举的完成Unsigned转换. 方案一:如果在Java中进行流(Stream)数据处理,可以用DataInputStream类对Stre ...

  9. java中无符号类型的处理

    在Java中,不存在Unsigned无符号数据类型,但可以轻而易举的完成Unsigned转换. 方案一:如果在Java中进行流(Stream)数据处理,可以用DataInputStream类对Stre ...

随机推荐

  1. cognos report同比环比以及默认为当前月分析

    现在的需求是按月份分析不同时期的余额数据,.(报表工具:cognos report:建模工具:FM) ------------------------------------------------- ...

  2. jsAnim简单使用教程

    引入jsAnim.js 定义动画元素 元素需要有position:relative;或者position:absolute;属性 添加js <!DOCTYPE HTML> <html ...

  3. C#.NET常见问题(FAQ)-interface接口如何理解

    个人把interface理解为一种比较特殊的判断技巧,不是常规的变量类型比如判断字符串,判断数组,而是判断类的实例是否拥有某些属性或者方法(比如有十个女的穿一样的衣服,头上盖住,让新郎去猜哪一个是他的 ...

  4. GP开发示例:数据库去重

    这个例子专业讲解基于ArcEngine使用GP开发的过程及遇到的问题.更多GP使用方法:GP使用心得 功能需求:现在外业第一次数据(简称调绘.mdb)和第二次数据(简称检查.mdb)有重复.第二次是在 ...

  5. js绝招

    1.JS判断 function IsDigit(cCheck) { //判断是否是数字return (('0'<=cCheck) && (cCheck<='9')); } ...

  6. Appium Python 六:管理应用和Activity

    管理应用 1. 将当前应用放到后台 执行之后,应用会被放到后台特定时间.比如这里就是5秒,5秒过后,应用会重新回到前台. driver.background_app(5) 官网示例: driver.b ...

  7. Java从零开始学三十五(JAVA IO- 字节流)

    一.字节流 FileOutputStream是OutputStream 的直接子类 FileInputStream也是InputStream的直接子类 二.文本文件的读写 2.1.字节输入流 Test ...

  8. jquery position方法使用及兼容性

    1.position方法 jquery api地址:http://jquery.cuishifeng.cn/position.html position方法获取匹配元素相对父元素的偏移. 2.说明 2 ...

  9. Tomcat启动时选择加载项目

    到tomcat\conf\Catalina\localhost下新建文件:myapp.xml 内容如下: <Context path="/myapp" docBase=&qu ...

  10. Cannot load supported formats: Cannot run program "svn"

      Cannot load supported formats: Cannot run program "svn" CreateTime--2018年4月26日11:32:37 A ...