יש את הטריק הידוע:
(שגם אם הוא אינו ידוע, זה לא קשה להגיע אליו לבד

קודם כל, עושים SWAP בין הנגיסה העליונה לנגיסה התחתונה של הבית, אח"כ עושים SWAP לשני ביטים העליונים והתחתונים בכל נגיסה, ובסוף עושים SWAP לכל ביט בתוך כל זוג ביטים. ובקוד?
byte reverse(byte b) { b = (0x0f & b >> 4) | (0xf0 & b << 4); b = (0x33 & b >> 2) | (0xcc & b << 2); b = (0x55 & b >> 1) | (0xaa & b << 1); return b; }
זה מתבצע בO(1), אין Branching, וזה ניתן למימוש באסמבלי די בקלות באסמבלי. ובעיקר - זה מאגניב. אגב, אני לא בטוח שהקוד באמת עובד(אני נטול קומפיילר כרגע), אבל אני יחסית בטוח שזה יהיה בסדר.