2013-10-28 45 views
0

我正在使用一個API,它給了我32位(4字節)數據的結果。我需要將此值解碼爲另一種格式才能使用它。將十進制轉換爲二進制,然後將二進制轉換爲未知格式?

數據的一個例子是:

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

我會收到來自API 645,我需要先轉換成二進制格式,然後一個未知的格式,我不能understand.I我能夠轉換 「645」,以二進制格式使用以下代碼:

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

輸出:100000000000000000

但是,我怎樣才能將它用於我的應用程序中。請有人幫我告訴我這是哪種格式?

+0

這是的各數位的基體10的格式(十進制)。 –

+0

你在使用Java還是C#? – Baldrick

+0

我在java中工作,但也添加了C#標記,因爲它的一個常見問題 – user818455

回答

2

首先,基數2中的645爲1010000101。(由於某種原因,您的代碼給出的結果不正確)。

一旦你意識到這一點,我認爲通過簡單地將二進制值分成8位數據塊(在必要時在開始處加0)可以達到「未知格式」,以便讓中間二進制格式,然後將每個塊(字節)轉換爲十進制(以10爲底)。

00000000在基座10是0。00000010在基座10是2 10000101在基座10是133.

+0

我在閱讀你的答案後就明白了。 – user818455

3

嘗試這種

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

是的,OP,這是怎麼做你正在問(格式化爲一個字符串)。 – Radiodef

+0

@Evgeniy我無法理解您發佈的答案。請幫助我如何使用它? – user818455

相關問題