快速反轉(zhuǎn)一個(gè)字節(jié)
題目:比如一個(gè)字節(jié)的二進(jìn)制表示為abcd efgh,要求輸出hgfe dcba?代碼如下:
1
unsigned char reverseChar(unsigned char c)
2

{
3
c=(c&0x55)<<1 | (c&0xAA)>>1;
4
c=(c&0x33)<<2 | (c&0xCC)>>2;
5
c=(c&0x0F)<<4 | (c&0xF0)>>4;
6
return c;
7
}
8
unsigned char reverseChar(unsigned char c)2


{3
c=(c&0x55)<<1 | (c&0xAA)>>1;4
c=(c&0x33)<<2 | (c&0xCC)>>2;5
c=(c&0x0F)<<4 | (c&0xF0)>>4;6
return c;7
}8

解釋:第3行功能將abcd efgh變?yōu)閎adc fehg,第4行功能將badc fehg變?yōu)閐cba hgfe,第5行功能將dcba hgfe變?yōu)閔gfe dcba,OK!
思想類似“快速計(jì)算整數(shù)的二進(jìn)制表示中含1的個(gè)數(shù)”,采用歸并方法。
posted on 2010-10-29 18:50 oliver 閱讀(632) 評(píng)論(0) 編輯 收藏 引用 所屬分類: Algorithm

