2013-04-13 62 views
1

char元素中的半字節是什麼?在char元素中交換半字節

我們如何交換?

任何人能解釋的半字節的交換用一個例子:

+1

建議的重複問題是一個有點古怪的;它具有16位和32位半字節交換的答案 - 以及[Bit Twiddling Hacks](http://graphics.stanford.edu/~seander/bithacks.html)的鏈接,這是一個寶貴的資源。我不確定它是否符合'準確重複'的條件,儘管它確實是密切相關的。 –

回答

6

的半字節(或半字節,通過用字節VS咬類推)是一char的4位塊。

你可以交換他們:

c = ((c & 0x0F) << 4) | ((c & 0xF0) >> 4); 
1
char temp1,temp2,z;// your o/p 
temp1=((x & 0x0f)<<4);//x be your input 
temp2=((x & 0xf0)>>4); 
z=temp1|temp2; 
2
int x = 0xab; // 1010 1011 

int x1 = (x & 0xF0) ; // 1010 0000 
int x2 = (x & 0x0F) ; // 0000 1011 

x = (x2 << 4 | x1 >> 4) ; // 1011 1010