字节序: big-endian vs little-endian
如何快速记忆
big-endian又名大尾序,就是数值的尾巴存储在大地址上。尾是相对我们认识的变量值,大是指地址;
相对应,little-endian又名小尾序,数值的尾巴存储在小地址上。
一句话大小是尾巴的地址,尾巴是数值的尾巴,指的是0xABCD(十进制43981)的D
如何判断字节序是大端还是小端
- 通过二进制工具查看: readelf -h main
int main(){return 0;
}
编译出二进制
g++ main.cpp -o main
使用readelf查看字节序
readelf -h main
结果如下(ELF Magic第6个字节代表字节序,0 无效格式; 1 小端格式; 2 大端格式)
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2’s complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: DYN (Shared object file)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Entry point address: 0x1060
Start of program headers: 64 (bytes into file)
Start of section headers: 14976 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 14
Size of section headers: 64 (bytes)
Number of section headers: 32
Section header string table index: 31
- 使用命令行查看: lscpu | grep -i byte
yms@yms-System-Product-Name:~/ws/thread_local$ lscpu | grep -i byte
Byte Order: Little Endian
- 使用代码(union)进行判断
#include <stdio.h>union Endian {char a;int b;};int main(){Endian endian;endian.b = 1;if (endian.a == 1) {printf("little endian\n");}else{printf("big endian\n");} return 0;}
yms@yms-System-Product-Name:~/ws$ ./main
little endian
网络序
网络传输一般采用大端序,也被称之为网络字节序,或网络序。IP协议中定义大端序为网络字节序。
字节序: big-endian vs little-endian相关推荐
- 理解字节序 [Understanding Big and Little Endian Byte Order]
原文地址 (本文对于字节序讲解的很清楚,容易理解.) Problems with byte order are frustrating, and I want to spare you the gri ...
- 汽车以太网-SOME/IP之字节序(Network Byte Order-Big Endian)
引子 SOME/IP规范中有如下定义: All SOME/IP Header Fields shall be encoded in network byte order(big endian). 译文 ...
- 数据包头分析---网络字节序与主机字节序
udp头部数据结构 struct udphdr { __be16 source; //16位源端口号 __be16 dest; //16位目的端口号 __be16 len; //指udp首 ...
- 顶级c程序员之路 选学篇-1 深入理解字节,字节序与字节对齐
深入理解字节,字节序与字节对齐 一 总述 作为一个职业的coder玩家,首先应该对计算机的字节有所了解. 我们经常谈到的2进制流,字节(字符)流,数据类型流(针对编程),结构流等说法,2进制流,0和 ...
- 主机字节序与网络字节序的转换函数:htonl、ntohl、htons、ntohs
Part 1: htons函数具体解释 在Linux和Windows网络编程时需要用到htons和htonl函数,用来将主机字节顺序转换为网络字节顺序. 在Intel机器下,执行以下程序 i ...
- 关于高位字节与低位字节简洁明了的说明,以及高低字节序转换函数
一般一个16位(双字节)的数据,比如 FF1A (16进制) 那么高位字节就是FF,低位是1A 如果是32位的数据,比如 3F68415B 高位字(不是字节)是3F68 低位字是415B 右边是低 ...
- Big Endian 和 Little Endian
Big Endian 和 Little Endian 一.字节序 来自:http://ayazh.gjjblog.com/archives/1058846/ 谈到字节序的问题,必然牵涉到两大CPU派系 ...
- 字节序: 一个不是很重要的概念
字节序 我们将一个4字节的汉字存入一段4字节的物理容器里, 该怎么存放? 直觉都是从左往右依次写入, 但也可以从右向左写, 甚至可以先写入奇字节再写偶字节, 这样比划下可以有n!种存储方式(n是字节数 ...
- 主机字节序与网络字节序的转换函数:htonl、ntohl、htons、ntohs【转】
(转自:https://blog.csdn.net/kulala082/article/details/53431473) Part 1: htons函数具体解释 在Linux和Windows网络编程 ...
- java转网络字节序_【转】网络字节序与主机字节序
最近在项目开发过程中,需要在采用JAVA作为语言的服务器与采用C++作为语言的服务器间进行通信,这就涉及到这两种语言间数据类型的转换以及网络字节序与主机字节序的区别.该文主要说说网络字节序和主机字节序 ...
最新文章
- Windows客户端C/C++编程规范“建议”——结构
- 作业——08 爬虫综合大作业
- python在会计中的应用-Python会计数据分析
- 【SmartJob】常规统计部署(报表使用的数据)
- 匿名内部类的使用总结
- GitOps:Kubernetes多集群环境下的高效CICD实践
- 【转】SharePoint开发中可能用到的各种Context(上下文)
- uview中使用_使用uniapp自带的地图_实现地图点选位置功能---基于Vue的uniapp手机端_前端UI_uview工作笔记006
- sublime中文件前缀的自动添加
- 春运来了,你的火车票备好了么?
- 湖北省首条短途运输航线“荆门—武汉”航线运营
- 考研心得--一个差劲的ACMer
- 阿里巴巴代码规范 学习总结
- FastJson是如何导致App Crash的
- 使用ajax爬取今日头条街拍图片
- 下载及安装NCCL教程
- 重磅综述:精神分裂症的神经影像生物标志物
- php laravel 教程,Laravel框架学习之新手教程
- python flask/ tornado简单demo
- CSS中100%和inherit(继承)的区别,以及inherit的简单应用
热门文章
- mininet-wifi安装openflow13
- 技术解读:Dragonfly 基于 P2P 的智能镜像加速系统
- TypeScript Property ‘XXX‘ does not exist on type ‘never‘
- win7 计算机休眠,WIN7如何关闭睡眠和休眠方式(真正的)
- android游戏手柄怎么用,王者荣耀怎么用手柄玩?手柄游戏详细教程
- fleaphp 快速开发php框架
- DIV+CSS系统学习:转载
- 国内智能工厂建设现状以及未来发展趋势介绍
- socket:read: Connection reset by peer
- Codeforces 760B Frodo and pillows【贪心+二分】