读书笔记:大端存储方式和小端存储方式和printf函数

一、大端存储方式和小端存储方式
  1. 大端存储格式。大端存储格式,即字数据的高字节存储在低地址中,而字数据的低字节存放在高地址中。小端存储格式相反。
  2. 小端方式和大端方式的区别是字中的字节的存储顺序不同,而字与字之间的存储顺序是相同的。
  3. 我们常用的x86结构是小端模式,而sun的SPARC采用大端模式。
二、printf函数
  1. 入栈:printf函数是最右侧的元素先入栈。若入栈元素位char、short等小于4个字节的类型,入栈时也占4个字节,所以"printf("%d, %d, %d", a, b, c);"才不会发生输出错误;大于4个字节的时候,如long long,按实际字节数入栈;字符串参数入栈的是指向字符串的指针。注意:char、short等类型入栈时由于入栈字节数为4,比它们实际占用的内存数要多,那么高位时补0还是补1呢?对于无符号类型时(如unsigned short),高位总是补1;有符号类型时(如short),高位补符号位。
  2. 出栈(即输出):输出时,从栈顶开始输出,每次输出4个字节。
测试题目:
int main(){
    char array[12] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};
    short *pshort = (short *)array;
    int *pint = (int *)array;
    long long *pint64 = (long long *)array;
    printf("0x%x, 0x%x, 0x%x, 0x%x", *pshort, *(pshort+2), *pint64, *(pint+2));
    return 0;
}

输出结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值