大端存放与小端存放 java网络编程是大端还是小端?
浏览量:1645
时间:2021-03-24 15:06:43
作者:admin
java网络编程是大端还是小端?
网络传输中使用的大端标记方法,即先传输权值较高的数字,就像先传输12、10、2一样。即使后者输了,损失也不算太大。小端与机器有关。如果您要封装一个数字,比如int,封装后应该是big end。您可以调用htons()或htonl()函数将其转换为big end(当然,您也可以用big end的方式封装它,这会有点麻烦)。在传输的过程中,当然也是大端,接收的缓冲区也是大端,但是在读取int类型时,需要将大端转换成小端(使用ntohs()函数或ntohl()函数),这样才能读取原始的数字。可以想象,如果使用机器A和B进行通信,而A和B的终端序列相同,则中间没有转换。但这并不是一个好习惯,因为如果移植到机器的另一端序列,那么就需要修改代码,严重破坏设计。所以最好使用这些函数。
什么是大端模式和小端模式?
判断计算机是大端还是小端?
small end:数据的高字节存储在高地址中,数据的低位字节存储在低位地址中。大端:数据的高位字节存储在低位地址,低位字节存储在高位地址。在一个典型的体系结构中,如果一个字是四个字节,那么小端机从地址到高位的数据0x0a0b0c0d的存储模式是:0x0D、0x0c、0x0b和0x0a。在大端模式下,从地址到高位的数据存储模式是:0x0a、0xb、0x0c和0x0D。在一般的处理器中,arm通常处于大端模式,而x86体系结构处于小型端模式。判断方法:首先通过读取同一地址的整数数据和字符数据来区分大端和小端。其次,根据联合体的共享内存特性判断机器类型
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。