📄 qbitbits.c
字号:
#include "f2c.h"#ifndef LONGBITS#define LONGBITS 32#endif#ifndef LONG8BITS#define LONG8BITS (2*LONGBITS)#endif integer#ifdef KR_headersqbit_bits(a, b, len) longint a; integer b, len;#elseqbit_bits(longint a, integer b, integer len)#endif{ /* Assume 2's complement arithmetic */ ulongint x, y; x = (ulongint) a; y = (ulongint)-1L; x >>= b; y <<= len; return (longint)(x & y); } longint#ifdef KR_headersqbit_cshift(a, b, len) longint a; integer b, len;#elseqbit_cshift(longint a, integer b, integer len)#endif{ ulongint x, y, z; x = (ulongint)a; if (len <= 0) { if (len == 0) return 0; goto full_len; } if (len >= LONG8BITS) { full_len: if (b >= 0) { b %= LONG8BITS; return (longint)(x << b | x >> LONG8BITS - b ); } b = -b; b %= LONG8BITS; return (longint)(x << LONG8BITS - b | x >> b); } y = z = (unsigned long)-1; y <<= len; z &= ~y; y &= x; x &= z; if (b >= 0) { b %= len; return (longint)(y | z & (x << b | x >> len - b)); } b = -b; b %= len; return (longint)(y | z & (x >> b | x << len - b)); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -