zoukankan      html  css  js  c++  java
  • LittleEndian & BigEndian (zz)

    The Basics

    "Little Endian" means that the low-order byte of the number is stored in memory at the lowest address, and the high-order byte at the highest address. (The little end comes first.) For example, a 4 byte LongInt

        Byte3 Byte2 Byte1 Byte0

    will be arranged in memory as follows:

        Base Address+0   Byte0
        Base Address+1   Byte1
        Base Address+2   Byte2
        Base Address+3   Byte3

    Intel processors (those used in PC's) use "Little Endian" byte order.

    "Big Endian" means that the high-order byte of the number is stored in memory at the lowest address, and the low-order byte at the highest address. (The big end comes first.) Our LongInt, would then be stored as:

        Base Address+0   Byte3
        Base Address+1   Byte2
        Base Address+2   Byte1
        Base Address+3   Byte0

    Motorola processors (those used in Mac's) use "Big Endian" byte order.

    Which is Better?

    You may see a lot of discussion about the relative merits of the two formats, mostly religious arguments based on the relative merits of the PC versus the Mac. Both formats have their advantages and disadvantages.

    In "Little Endian" form, assembly language instructions for picking up a 1, 2, 4, or longer byte number proceed in exactly the same way for all formats: first pick up the lowest order byte at offset 0. Also, because of the 1:1 relationship between address offset and byte number (offset 0 is byte 0), multiple precision math routines are correspondingly easy to write.

    In "Big Endian" form, by having the high-order byte come first, you can always test whether the number is positive or negative by looking at the byte at offset zero. You don't have to know how long the number is, nor do you have to skip over any bytes to find the byte containing the sign information. The numbers are also stored in the order in which they are printed out, so binary to decimal routines are particularly efficient.

  • 相关阅读:
    php_package v2.7发布了 宋正河作品
    svn图文教程-宋正河整理
    ci框架学习整理
    php+mysql 数据库分表分段备份程序--宋正河
    保留mysql数据库中的最新1000条记录
    php 文件上传缩略图路径分析类
    php js css加载合并函数 宋正河整理
    二级域名 cookie session 共享
    图像处理相关概念
    由Python到深度学习入门之Keras、TensorFlow 、PyTorch联系与区别
  • 原文地址:https://www.cnblogs.com/neoragex2002/p/80067.html
Copyright © 2011-2022 走看看