Java之中如何判断CPU是大端(Big Endian)还是小端(Little Endian)

Java之中如何判断CPU是大端(Big Endian)还是小端(Little Endian)

虽然Java之中的内存分配都Java本身都已经处理好了,不存在Big Endian和Little Endian的区别。

jvm是安装大端来处理的。

但是,在一些特殊的情况下,我们任然需要知道CPU到底是big endian或者little endian。

Java里面可以直接的调用java.nio.ByteOrder类的方法nativeOrder()方法,下面的是我的测试代码:

复制代码
import java.nio.ByteOrder;

public class TestCPU {
  public static void main(String[] args) {
    if (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN) {
      System.out.println("BIG_ENDIAN");
    } else {
      System.out.println("LITTLE_ENDIAN");
    }
  }
}
复制代码

在Windows Intel上输出的结果是:
  LITTLE_ENDIAN

在AIX PPC64上面的输出结果是:

=> java TestCPU
BIG_ENDIAN


===
下面是C语言中的作法:

复制代码
#include <stdio.h>

int main()
{
    union ut{
        short s;
        char c[2];
    }u;
    
    if(sizeof(short) == 2)
    {
        u.s = 0x0102;
        if(u.c[0] == 1 && u.c[1] == 2)
        {
            printf("big enidan.\n");
        } else if(u.c[0] == 2 && u.c[1] == 1)
        {
            printf("little endian.\n");
        }
    }
    return 0;
}
复制代码

 

posted @   整合侠  阅读(387)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2019-01-15 Spring Boot 2 (八):Spring Boot 集成 Memcached
2019-01-15 Spring Boot 2 (七):Spring Boot 如何解决项目启动时初始化资源
2019-01-15 Spring Boot 2 (六):使用 Docker 部署 Spring Boot 开源软件云收藏
2019-01-15 Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践
2019-01-15 Spring Boot 2 (四):使用 Docker 部署 Spring Boot
2019-01-15 Spring Boot 2 (三):Spring Boot 2 相关开源软件
2019-01-15 Spring Boot 2 (二):Spring Boot 2 动态 Banner
点击右上角即可分享
微信分享提示