zoukankan      html  css  js  c++  java
  • 大端小段字节序-网络序-主机序

    原创文章,欢迎阅读,禁止转载
    网络序 大端 big-endian 可以抓包看清楚
    主机序 小端 little-endian 但window确实是小端,亲自验证(实际上也有大端的机器
    大端小端,针对多字节数据而言的,字符串单字节,不存在这个问题
    小端:低位在低地址,高位在高地址(主机序)
    大端:低位在高地址(网络序)
    int a=0x12345678;//结果如下:

    有四个函数可以进行字节序转换:

    htonl() //把整型数从主机序转为网络序,如果系统已经与网络序一致则直接返回
    ntohl()
    htons() 
    ntohs()

    时隔几年了,在补充一段,如果已知字节序,该如何定义结构体呢?

    字节序问题,其实就是要顺应字节序,如果高位应该在高地址,那么就把它放在高地址,仅此而已。

    //如果是小端字节序,低地址存低位,高地址存高位
    union{
    int N; //4个字节对应的相当于是:
    char c[4]; // 十 百 千
    }
    
    
    //如果是大端字节序,高地址存低位
    union{
    int N; //4个字节对应的相当于是:
    char c[4]; //千 百 十 
    }
    

      

    原创文章,欢迎阅读,禁止转载

  • 相关阅读:
    HDU多校第六场——HDU6638 Snowy Smile(线段树区间合并)
    java
    java
    java
    java
    java
    python
    appium
    python
    python
  • 原文地址:https://www.cnblogs.com/zhaojk2010/p/7052426.html
Copyright © 2011-2022 走看看