給定一個整數A
,編寫C或Java代碼,它將從數組中提取單個字節(字節)索引n
,並將其分配給一個int變量b
。如何從給定字節索引的int數組中提取單個字節?
這是班級作業的一部分。我甚至不知道如何開始這個。我需要以某種方式將整個int數組轉換爲一個字節數組,然後將其轉換回int類型?或者我應該考慮數組中的每個整數是4個字節。我會將我的字節索引除以4以找出它所在的整數,然後從那裏開始工作?
我不是在尋找答案,只是一些指導。謝謝!
給定一個整數A
,編寫C或Java代碼,它將從數組中提取單個字節(字節)索引n
,並將其分配給一個int變量b
。如何從給定字節索引的int數組中提取單個字節?
這是班級作業的一部分。我甚至不知道如何開始這個。我需要以某種方式將整個int數組轉換爲一個字節數組,然後將其轉換回int類型?或者我應該考慮數組中的每個整數是4個字節。我會將我的字節索引除以4以找出它所在的整數,然後從那裏開始工作?
我不是在尋找答案,只是一些指導。謝謝!
如果我正確地得到這個問題,首先你可以使用按位移位運算>>
的從nth
指數數組元素得到單字節,
int single_element_byte = (number >> (i * 8)) & 0xff;
/* Where (0 <= i <= 3) - 0: First byte; 1: Second byte */
其次,你可以遍歷數組A
每nth
指數計算單個字節以上。請注意,變量的內容可以是大/小端,如果修改了這些內容,則無法保證正確的值。要做到這一點
一種方法是首先找到正確的INT,然後使用位位移到正確對齊所需的字節,並最終掩蓋二進制整數和(&
)。
請注意,與Java不同,C沒有指定int
的大小恰好爲4個字節,所以一個迂腐的C解決方案會要求您的程序考慮大於4個字節的整數。
我希望這是你想要的那種指導!
如果我理解正確,用戶給你的位置的字節提取和索引的數組A中?
如果我這樣做,那麼你應該得到從陣列 給定索引處的int值,那麼你應該轉換int值的字節數組(byte []),然後在字節中獲得的價值[N] 和轉換它的值返回到「b」
好int和商店,因爲你標記它作爲C.我會利用在C.
鑄造注意,一個字符是一個字節。
所以我們可以將int數組強制轉換爲char *。
然後在任何給定的字節索引處作爲數組訪問char *。
有效索引的範圍從0到sizeof(int)*(int數組長度)。
哦,因爲你需要一個int的答案。只要說int答案= byteArray [index]
一個字符只是一個最大值爲2^4的整數