所以我想寫一個函數,將7位格雷碼轉換爲相應的7位二進制代碼。格雷碼到二進制代碼轉換
下面是如何轉換 -
- 灰度值位---- MS位>(G6)G5 G4 G3 G2 G1 G0 *
二進制值位 - MS位>(B6 )B5 B4 B3 B2 B1 B0 *
B6 = G6 // MS比特總是相同
- B5 B6 =^G5 //異 'OR' 的位一起構建7位二進制值
- B4 = B5^G4
- B3 = B4^G3
- B2 = B3^G2
- B1 = B2^G1
- B0 = B1^G0
,這裏是我的功能所以遠
unsigned short Gray_to_Bin(unsigned short Gray)
{
unsigned short Bin;
unsigned short i;
unsigned short mask;
mask = 0x40; // Initial mask
Bin = 0;
Gray &= 0x7f; // Mask bit 7 (Index Bit)
Bin = Gray & mask; // Set B6 = G6
for (i=0; i<6; i++) // Set B5, B4, ..., B0
{
// Code needed here!!
}
return Bin;
}
我需要到f ind一種方法來訪問每個運行循環所需的特定位...需要像我可以以某種方式訪問位...
任何想法/指針?謝謝:)
那麼,代碼不是陣列形式 - 進來的灰色代碼將像0101 1100.我不認爲你可以像訪問一個數組中的每個數字短代碼? (請原諒我的無知,我對此很陌生:P)。 謝謝! – 2011-03-15 08:17:50