将十进制转换为二进制,然后将二进制转换为未知格式

本文关键字:二进制 转换 格式 未知 十进制 然后 | 更新日期: 2023-09-27 18:37:07

我正在使用一个 API,它给我 32 位(4 字节)数据的结果。我需要将此值解码为另一种格式才能使用它。

数据示例可以是:

 645 --> (00000000 00000000 00000010 10000101) --> (0, 0, 2, 133) 

我将从 API 收到 645,我需要首先将其转换为二进制格式,然后转换为我无法理解的未知格式。我能够使用以下代码将"645"转换为二进制格式:

   public static void toBinary(String value){
       int i = Integer.parseInt(value);
       System.out.println(Integer.toBinaryString(i));
   }

输出 : 100000000000000000000

但是我如何让它(0,0,2,133)在我的应用程序中使用它。谁能帮我说出这是哪种格式?

将十进制转换为二进制,然后将二进制转换为未知格式

试试这个

String s = "(" + (n >> 24 & 0xFF) + ", " + (n >> 16 & 0xFF)+ ", " + (n >> 8 & 0xFF)+ ", " + (n & 0xFF) + ")";

首先,基数 645 中的 2 是1010000101。(由于某种原因,您的代码给出了不正确的结果)。

一旦你意识到这一点,我认为很容易看到"未知格式"可以通过简单地将二进制值分解为 8 位的块(必要时在开头添加 0)来提供中间二进制格式,然后将每个块(字节)转换为十进制(以 10 为基数)。

以 10 为基数的00000000为 0。 以 10 为基数的00000010为 2。 以 10 为基数的10000101是 133。