#include "f2c.h"Include dependency graph for lbitbits.c:

Go to the source code of this file.
Defines | |
| #define | LONGBITS 32 |
Functions | |
| integer | lbit_bits (integer a, integer b, integer len) |
| integer | lbit_cshift (integer a, integer b, integer len) |
| #define LONGBITS 32 |
Definition at line 32 of file lbitbits.c.
References long, LONGBITS, x, y, and z.
00034 { 00035 unsigned long x, y, z; 00036 00037 x = (unsigned long)a; 00038 if (len <= 0) { 00039 if (len == 0) 00040 return 0; 00041 goto full_len; 00042 } 00043 if (len >= LONGBITS) { 00044 full_len: 00045 if (b >= 0) { 00046 b %= LONGBITS; 00047 return (integer)(x << b | x >> (LONGBITS -b) ); 00048 } 00049 b = -b; 00050 b %= LONGBITS; 00051 return (integer)(x << (LONGBITS - b) | x >> b); 00052 } 00053 y = z = (unsigned long)-1; 00054 y <<= len; 00055 z &= ~y; 00056 y &= x; 00057 x &= z; 00058 if (b >= 0) { 00059 b %= len; 00060 return (integer)(y | z & (x << b | x >> (len - b))); 00061 } 00062 b = -b; 00063 b %= len; 00064 return (integer)(y | z & (x >> b | x << (len - b))); 00065 }
1.5.1