source: buchla-68k/lib700/bitrev.c@ d21fc6f

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

Zero redundant declarations.

  • Property mode set to 100644
File size: 911 bytes
Line 
1/*
2 =============================================================================
3 bitrev.c -- bit reverse function
4 Version 1 -- 1987-03-24 -- D.N. Lynx Crowe
5 =============================================================================
6*/
7
8#include "ram.h"
9
10static int16_t bitmask[] = {
11
12 0x0001, 0x0002, 0x0004, 0x0008,
13 0x0010, 0x0020, 0x0040, 0x0080,
14 0x0100, 0x0200, 0x0400, 0x0800,
15 0x1000, 0x2000, 0x4000, 0x8000
16};
17
18/*
19 =============================================================================
20 bitrev(bitsin, nbits) -- reverses the rightmost nbits of bitsin.
21
22 Any bits to the left of the reversed bits in the result will be zeros.
23 =============================================================================
24*/
25
26int16_t bitrev(int16_t bitsin, int16_t nbits)
27{
28 int16_t 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.