gpt4 book ai didi

java - 将 32 位整数拆分为 4 个 8 位整数

转载 作者:行者123 更新时间:2023-12-02 12:20:07 25 4
gpt4 key购买 nike

我正在使用 Java 处理视频数据,并希望将四个 8 位整数存储在 32 位整数中。换句话说,我想将 0 到 255 之间的 R、G、B 和 A 值打包到一个 32 位整数中。

我该怎么做:

  1. 创建 4 个从 0 到 255 的整数值并将它们存储在 32 位整数中?

  2. 从 32 位整数中解包 4 个 8 位整数值?

谢谢!

最佳答案

包装:

int rgba = (a << 24) | (b << 16) | (g << 8) | r;

<<是左移运算符; |是按位或运算符。

拆包:

int r = rgba & 0xff;
int g = (rgba >> 8) & 0xff;
int b = (rgba >> 16) & 0xff;
int a = (rgba >> 24) & 0xff;

>>是(带符号 *)右移运算符; &是按位与运算符。

显然,您可以按照您想要的任何顺序打包/解包它们。

<小时/>

(*) 您可以在此处使用有符号或无符号 ( >>> ) 右移。在这种情况下,这对结果没有影响。

关于java - 将 32 位整数拆分为 4 个 8 位整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56210515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com