深入理解计算机系统 笔记 day0 大小端,补码,指针类型与存储地址问题


大小端法p29

*  判断:c的unit, 地址强转指针查看,即
    unsigned char a = 0x1234567891;
    printf("%x", (&a)[0]);              //指针也可用数组表示法读取字节
可以实现溢出,查看别处字节
区别数组与元素的关系,如字符串为char数组,没有大小端行为(只为单字节)

指针指向地址与指针类型的取指问题p34

指针依旧存储首地址,指针类型影响解引用.
const char *cp = "abcdef";
printf("%c\n", *cp);    //a
printf("%s\n", cp);     //abcdef

补码p45

  • 最高位为负权,也称符号位,其余位正常 所以极负比极正绝对值大1
  • 强转只改变位点的解释方式
  • c倾向于强转为无符号数
    大数据类型扩展:  无符号数为零扩展(首添0),补码数符号扩展(添符号位值)
    有符号到无符号:  先转大小再转有无符号
    小数据类型转换:  截断高位留低位 无符号数直接取mod,补码还要考虑新的符号位
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值