2013-11-09 86 views
0

給定一個整數A,編寫C或Java代碼,它將從數組中提取單個字節(字節)索引n,並將其分配給一個int變量b如何從給定字節索引的int數組中提取單個字節?

這是班級作業的一部分。我甚至不知道如何開始這個。我需要以某種方式將整個int數組轉換爲一個字節數組,然後將其轉換回int類型?或者我應該考慮數組中的每個整數是4個字節。我會將我的字節索引除以4以找出它所在的整數,然後從那裏開始工作?

我不是在尋找答案,只是一些指導。謝謝!

回答

0

如果我正確地得到這個問題,首先你可以使用按位移位運算>>的從nth指數數組元素得到單字節,

int single_element_byte = (number >> (i * 8)) & 0xff; 
/* Where (0 <= i <= 3) - 0: First byte; 1: Second byte */ 

其次,你可以遍歷數組Anth指數計算單個字節以上。請注意,變量的內容可以是大/小端,如果修改了這些內容,則無法保證正確的值。要做到這一點

1

一種方法是首先找到正確的INT,然後使用位位移到正確對齊所需的字節,並最終掩蓋二進制整數和(&)。

請注意,與Java不同,C沒有指定int的大小恰好爲4個字節,所以一個迂腐的C解決方案會要求您的程序考慮大於4個字節的整數。

我希望這是你想要的那種指導!

0

如果我理解正確,用戶給你的位置的字節提取和索引的數組A中?

如果我這樣做,那麼你應該得到從陣列 給定索引處的int值,那麼你應該轉換int值的字節數組(byte []),然後在字節中獲得的價值[N] 和轉換它的值返回到「b」

0

好int和商店,因爲你標記它作爲C.我會利用在C.

鑄造

注意,一個字符是一個字節。

所以我們可以將int數組強制轉換爲char *。

然後在任何給定的字節索引處作爲數組訪問char *。

有效索引的範圍從0到sizeof(int)*(int數組長度)。

哦,因爲你需要一個int的答案。只要說int答案= byteArray [index]

一個字符只是一個最大值爲2^4的整數

相關問題