zoukankan      html  css  js  c++  java
  • 大小端定义

    大小端的定义

    Big-Endian和Little-Endian的定义如下:

    • Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
    • Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。

    举一个例子,比如数字0x12 34 56 78在内存中的表示形式为:

    大端模式:

    低地址 -----------------> 高地址
    0x12 | 0x34 | 0x56 | 0x78
    高位--------------------低位

    内存中的表示:

    buf[0]=0x12
    buf[1]=0x34
    buf[2]=0x56
    buf[3]=0x78
    

    可见,大端模式和字符串的存储模式类似。

    小端模式:

    低地址 ------------------> 高地址
    0x78 | 0x56 | 0x34 | 0x12
    低位---------------------高位

    内存中的表示

    buf[0]=0x78
    buf[1]=0x56
    buf[2]=0x34
    buf[3]=0x12
    

    网络中的字节序

    网络中的数据均使用大端模式,发送端需要使用htons/htonl来确保转换为大端模式(网络字节序),接收端需要使用ntohs/ntohl来确保转换为本机的大(小)端模式(主机字节序)。

    应用层的字节序

    要根据具体应用协议去区分,比如Mysql通信协议,使用的是the least significant byte first,其实就是小端方式。

  • 相关阅读:
    groovy Date 格式化
    MySql Delete不走索引问题
    java解析文件
    H5自动准备杂记
    ubuntu 安装php ,apache 问题总结
    git 添加已被忽略的文件夹
    jenkins + nodejs + git 自动化部署前端
    分享到微信填坑之路
    jenkins 自动化部署php
    natapp 穿透访问 vue项目 Invalid Host header
  • 原文地址:https://www.cnblogs.com/lanyangsh/p/9782113.html
Copyright © 2011-2022 走看看