java - 如何确定表示给定整数所需的字节数?

标签 java byte

我需要 Java 中的一个函数来提供表示给定整数所需的字节数。当我传递 2 时,它应该返回 1、400 -> 2、822222 -> 3 等。

@Edit:现在我坚持这个:

numOfBytes = Integer.highestOneBit(integer) / 8

不知道 HighestOneBit() 到底做什么,但也尝试过:

numOfBytes = (int) (Math.floor(Math.log(integer)) + 1);

我在某个网站上找到的。

最佳答案

static int byteSize(long x) {
    if (x < 0) throw new IllegalArgumentException();
    int s = 1;
    while (s < 8 && x >= (1L << (s * 8))) s++;
    return s;
}

关于java - 如何确定表示给定整数所需的字节数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8377050/

相关文章:

Java:泛型类型

java - 如何将 char 值传递给 int 参数的方法

C 编程将字节输出到文件中

java - 将 CIDR 表示法转换为 IP 范围,无需其他库

byte - 交换字节中的每对位

java - 如何从配置类实用地设置 Spring Active Profiles?

java - 在 Unix 上自动安装 Java

java - Jess:获取已断言事实的事实 ID?

java - 推迟消息的最佳方式是什么?

java - 如何从 html5 websocket 计算出负载大小