source: buchla-68k/orig/CLIBRARY/BITREV.C@ 0170798

Last change on this file since 0170798 was 3ae31e9, checked in by Thomas Lopatic <thomas@…>, 7 years ago

Imported original source code.

  • Property mode set to 100755
File size: 922 bytes
RevLine 
[3ae31e9]1/*
2 =============================================================================
3 bitrev.c -- bit reverse function
4 Version 1 -- 1987-03-24 -- D.N. Lynx Crowe
5 =============================================================================
6*/
7
8static int bitmask[] = {
9
10 0x0001, 0x0002, 0x0004, 0x0008,
11 0x0010, 0x0020, 0x0040, 0x0080,
12 0x0100, 0x0200, 0x0400, 0x0800,
13 0x1000, 0x2000, 0x4000, 0x8000
14};
15
16/*
17 =============================================================================
18 bitrev(bitsin, nbits) -- reverses the rightmost nbits of bitsin.
19
20 Any bits to the left of the reversed bits in the result will be zeros.
21 =============================================================================
22*/
23
24int
25bitrev(bitsin, nbits)
26int bitsin, nbits;
27{
28 int m, n;
29
30 n = 0;
31
32 for (m = 0; m < nbits; m++)
33 if (bitsin & bitmask[m])
34 n |= bitmask[nbits-1-m];
35
36 return(n);
37}
38
Note: See TracBrowser for help on using the repository browser.