#include <stdio.h>
#include <string.h> typedef struct A{
int a:5;
int b:3;
unsigned c:8;
unsigned d:8;
} Type_A; /* VS2010, Windows XP, Debug模式下运行 */
int main(void)
{
struct A a;
char s[]="12345678"; printf( "%d\n",sizeof(Type_A) );//4
printf("%d\n",sizeof(a));//4 memcpy(&a,s,3);
printf("%d\n",a.a);//'1'的低位 -15
printf("%d\n",a.b);//'1'的高位 1
printf("%d\n",a.c-'0');//'3' 51
printf("%d\n",a.d-'0');//'4' 52 return 0;
}

'1'(49)的二进制 00110001,
a.a=10001 (-15)
a.b=001     (1)

由A的定义已知a.a(10001)是代表一个有符号的int型,

先执行符号位扩展得到11110001,

再减一得到11110000,

再取反得到10001111,就是-15的源码了.
所以a.a的值为-15, 同理,a.b为1。

参考:

http://www.cnblogs.com/bigrabbit/archive/2012/09/20/2695543.html

最新文章

  1. ATL 获取flash信息
  2. C#并行编程-线程同步原语
  3. 再一个客户端设置多个git账号
  4. 百度Web富文本编辑器ueditor在ASP.NET MVC3项目中的使用说明
  5. Strust的基础情况
  6. (10)nehe教程4--旋转
  7. asp.net 权限问题
  8. .net平台下C#socket通信(转)
  9. 图文:TF卡和SD卡的区别及什么是TF卡?什么是SD卡
  10. 我的 MarkDown 学习笔记
  11. C#项目间循环引用的解决办法,有图有真相
  12. C# 调用cmd.exe的方法
  13. Robot Framework学习笔记
  14. FNMP
  15. Android BrocastReceiver解析
  16. iframe相关小结
  17. 关于引用外部类要用static 的问题
  18. Kibana——日志可视化工具
  19. HeadFirst Ruby 第十五章总结 Saving and loading data
  20. spring学习 六 spring与mybatis整合

热门文章

  1. C++ 游戏之点点水果
  2. exFAT移动硬盘写保护怎么去掉
  3. sguf冲销脚本的实现
  4. vim出现自动补全的问题
  5. Python3.6 AES加密 pycrypto‎ 更新为 pycrypto‎demo | TypeError: Object type &lt;class &#39;str&#39;&gt; cannot be passed to C code
  6. Java如何查看死锁
  7. CPU结合CS、IP寄存器进行执行程序
  8. Codechef_JULY14
  9. YARN结构分析与工作流程
  10. 对synchronized的一点理解