当前位置: 首页 > article >正文

linux 网络序

大小端判断
  • 根据整形二进制显示判断

    • 高位字节存放在内存中高地址处,低位字节存放在内存中低地址处则是小端;
    • 高位字节存放在内存中低地址处,低位字节存放在内存中高地址处则是大端;
    typedef struct Test{
    	int a;
    	int b;
    }Test_t;
    
    Test_t t = {.a=5,.b=6};
    // t.a二进制显示: 00000000 00000000 00000000 00000101
    // t.b二进制显示: 00000000 00000000 00000000 00000110
    // 查看t.a或t.b在内存中的二进制布局
    
    gcc -g test.c - test
    gdb ./test
    x/4tb &t.a
    0x7fffffffeb38: 00000101        00000000        00000000        00000000
    # 低字节00000101在内存中存放在低位地址(内存显示左到右是地址递增的),所以是小端
    # t.b同理
    x/4tb &t.b
    0x7fffffffeb3c: 00000110        00000000        00000000        00000000
    
    
    // 衍生出将多字节整形转单字节来判断大小端
    short int a = 3; // 00000000 00000011
    char c = (char)a;
    printf("%d\n", c); // 若c是0,则是大端,是3则小端
    
  • 在将ip字符串转网络序存储时

    char ipv4[] = "192.168.0.2";
    long nip = 0;
    inet_pton(AF_INET, ipv4, &nip);
    
    long uip = ntohl(nip);
    printf("%ld, %ld\n", uip, nip); // 若两者一样,则是大端(网络序是大端)
    x/4tb &nip
    0x7fffffffde08: 11000000        10101000        00000000        00000010
    
    x/4tb &uip
    0x7fffffffde30: 00000010        00000000        10101000        11000000 
    
    

http://www.kler.cn/news/328578.html

相关文章:

  • 快速实现AI搜索!Fivetran 支持 Milvus 作为数据迁移目标
  • 【Linux】进程概念-2
  • 给自己的项目(vue3)中添加 下雪/樱花飘落的背景
  • 复写零——双指针算法
  • 自制CANTool_DBC差异比较工具DBCCompare_原理介绍(四)
  • 【架构】prometheus+grafana系统监控
  • 鸿蒙开发知识点速记全解
  • Python数据分析工具: Scikit-learn用法示例
  • android.bp cc_test
  • 木舟0基础学习Java的第三十一天(SpringMVC,xml式和注解式开发,携带数据,取值,视图解析)
  • Selenium(1)-webUI自动化环境部署,基本元素定位
  • 大学学校用电安全远程监测预警系统
  • Verilog基础:时序调度中的竞争(四)(描述时序逻辑时使用非阻塞赋值)
  • 车辆重识别(注意力 U-Net:学习在哪些区域寻找胰腺)论文阅读2024/10/01
  • 单体到微服务架构服务演化过程
  • 无人机跟踪
  • [网络]抓包工具介绍 tcpdump
  • 15.面试算法-树基础
  • 【深度学习】低维向量映射到高维空间的方法
  • 服装分类检测系统源码分享
  • 数据库重建索引的作用?
  • 编码能力提升计划 - 华为OD统一考试(E卷)
  • 2025届CS保研经验简帖
  • C#语言的历史与发展:从基础到高级的全面解析
  • Spring Boot技术在足球青训管理中的创新应用
  • 深入理解 WebSocket:实时通信的利器
  • 从基础到进阶:Docker 实践与应用的全方位解析
  • 维修保养记录接口-维修保养记录API-汽车接口
  • 【DAY20240927】经典深度学习模型对比:LeNet5、CNN、ResNet20、AlexNet、TextCNN 与 VGG-11
  • list的模拟实现