lbitbits.c
来自「gcc-2.95.3 Linux下最常用的C编译器」· C语言 代码 · 共 63 行
C
63 行
#include "f2c.h"#ifndef LONGBITS#define LONGBITS 32#endif integer#ifdef KR_headerslbit_bits(a, b, len) integer a, b, len;#elselbit_bits(integer a, integer b, integer len)#endif{ /* Assume 2's complement arithmetic */ unsigned long x, y; x = (unsigned long) a; y = (unsigned long)-1L; x >>= b; y <<= len; return (integer)(x & ~y); } integer#ifdef KR_headerslbit_cshift(a, b, len) integer a, b, len;#elselbit_cshift(integer a, integer b, integer len)#endif{ unsigned long x, y, z; x = (unsigned long)a; if (len <= 0) { if (len == 0) return 0; goto full_len; } if (len >= LONGBITS) { full_len: if (b >= 0) { b %= LONGBITS; return (integer)(x << b | x >> LONGBITS -b ); } b = -b; b %= LONGBITS; return (integer)(x << LONGBITS - b | x >> b); } y = z = (unsigned long)-1; y <<= len; z &= ~y; y &= x; x &= z; if (b >= 0) { b %= len; return (integer)(y | z & (x << b | x >> len - b)); } b = -b; b %= len; return (integer)(y | z & (x >> b | x << len - b)); }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?