整数のビット反転を計算する。
Compute the bit reversal of an integer.
◆形式(Format)
#include <intmath.h>
inline int bitrevpair(int old,const int order)
◆引数(Arguments)
old
ビット反転させる前の整数。
The integer before the bit reversal.
order
整数の2進数表現に用いるビット数。
The number of bits to express the integer as a binary number.
◆戻り値(Return value)
引数oldが表す整数をorder桁の2進数で表現し、
bitの順番を反転させて得られる整数。
An integer obtained by
expressing the integer given by argument old
as a binary number of order digits
and reversing the order of bits.
◆使用例(Example)
int i=bitrevpair(11,5);
int j=bitrevpair(11,4);
int k=bitrevpair(11,3);
1つ目の例では11を5桁の2進数で表すと\(01011_{(2)}\)、
bitの順番を反転させると\(11010_{(2)}=26\)であるので
\(i=26\)となる。
The 1st example gives \(i=26\) because
the binary expression of 11 with 5-digits is \(01011_{(2)}\)
and reversing the order of its bits results in \(11010_{(2)}=26\).
2つ目の例では11を4桁の2進数で表すと\(1011_{(2)}\)、
bitの順番を反転させると\(1101_{(2)}=13\)であるので
\(j=13\)となる。
The 2nd example gives \(j=13\) because
the binary expression of 11 with 4-digits is \(1011_{(2)}\)
and reversing the order of its bits results in \(1101_{(2)}=13\).
3つ目の例では11を3桁の2進数では表現できないのでエラーとなる。
The 3rd example results in an error
because 11 cannot be expressed by a binary number of 3-digits.