zoukankan      html  css  js  c++  java
  • Little-endian和Big-endian模式

    这段C程序的结果是多少?

    嵌入式系统开发者应该对Little-endian和Big-endian模式非常了解。采用Little-endian模式
    的CPU对操作数的存放方式是从低字节到高字节,而Big-endian模式对操作数的存放方式是
    从高字节到低字节。例如,16bit宽的数0x1234在Little-endian模式CPU内存中的存放方式(假
    设从地址0x4000开始存放)为:

    而在Big-endian模式CPU内存中的存放方式则为:

    32bit宽的数0x12345678在Little-endian模式CPU内存中的存放方式(假设从地址0x4000开
    始存放)为:

    而在Big-endian模式CPU内存中的存放方式则为:

    在本题中E的ASCII值是0x45(0100 0101),M是0x4D(0100 1101),它们在内存中的表现如
    下:

    结构bitstruct是9位的,执行copy以后,b在内存中如下:

    b1占5位:

    中间跳过2位,b2占2位:

    计算的时候再把它们逆转过来,就成了下面的形式:

    b1最高位是0,表示其是正数,其原码跟补码一致,所以b1=2^0+2^2=5。
    b2最高位是1,表示其是负数,其原码要进行取反操作再加1为10所以b2=-(2^1)=(-2)。
    答案:5,-2

  • 相关阅读:
    记一次主从同步出现错误
    Mycat的学习
    MHA高可用集群
    MySQL进行 行累计
    设定从某个时间执行脚本,直到现在
    跟踪数据
    爬虫笔记
    爬虫练习
    css3-文本阴影
    vue生命周期
  • 原文地址:https://www.cnblogs.com/yihujiu/p/6368701.html
Copyright © 2011-2022 走看看