+
 新版

关于java与intel x86 cpu交换数据时涉及big endian和little endian的问题

hy86 发布于 2013/05/16 17:00
阅读 1K+
收藏 0

今天看到关于字节序big endian和little endian的问题。通过搜索,知道了:

1.java使用 big endian格式读取字节,这种字节序又称为网络字节序,也就是网络上传输的数据也是这种格式。

2.x86 cpu使用的格式是little endian。

3.如果用C写的程序运行在x86 cpu的机器上,向另一台机器上的java程序发送一个数据时,需要将这个数据的字节序由little endian转换成big endian即网络字节序后再进行传输,否则java程序读到此数据时,将会转换成错误的数据。

现在的问题是,如果在一台x86 cpu的机器上运行一个java程序,此程序与cpu(或者说控制cpu的程序比如汇编?)在数据交换方面是怎样做的呢,毕竟他们使用的字节序是不同的啊,他们之间是不是也要转换,如果转换,是否会影响机器运行效率?

加载中
0
魔力猫
魔力猫
这都是由JVM虚拟机帮助你处理了,完全帮你屏蔽了底层。性能方面不用担心,很多CPU都有专门的指令进行处理来保证效率。
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部