字节序有两种方式存放,一种是大端,一种是小端,所谓大端是指将所存的数按照高位存在于低地址,低位存于高地址的方式存放,就是说比如一个int的数1234 用十六进制表示就是0x01 02 03 04,如果是按照大端方式存储的,那么内存中排列就是01 02 03 04,小端就是,高位存于高地址,低位存于低地址,那么就应该是04 03 02 01,至于自己电脑是采用的哪个方式,可以自己定义一个变量,debug一下,看一下改变量的内存地址即可发现是那种模式(VS查看内存的步骤:调试模式下,Tools->窗口==>内存),一般来说 我们电脑应该是按照小端模式存放的,将其称为本机字节序,大端一般是网络字节序用的比较多,注意,只能存在一种模式,上述这两种字节序可以相互转换,用字节序转换函数即可,另外延申一下,结构体中,sockaddr_in中的IP地址是一个4位数32位的整数,它是网络字节序,我们常见的IP地址是点分十进制的字符串,比如192.168.0.101,注意它是个字符串,它和32的网络地址也是可以相互转换的,char* inet_ntoa(...) int inet_aton(....),函数原型去百度吧,懒得写了。
字节序
最新推荐文章于 2023-07-24 16:02:17 发布