📄 defs.c
字号:
/* Common Procedures */#include "defs.h"#include "par.h"/* isolate bitstring */word getbits(ind x,int i,int n){ int j,k; word m; j=bitoffs(i); k=wordoffs(i); m=(1 << n)-1; if(j<bitoffs(i+n)) return (x[k] >> j) & m; else return ((x[k] >> j) | (x[k+1] << (32-j))) & m;}void putbits(word w,ind x,int i,int n){ int j,k; word m; j=bitoffs(i); k=wordoffs(i); m=((1 << n)-1); x[k]&= ~(m << j); x[k]|=(w << j); if(j>=bitoffs(i+n)) { x[k+1]&= ~(m >> (32-j)); x[k+1]|= (w >> (32-j)); };}/* dual logarithm, rounded up */int duallog(int n){ int l; for(l=0;(1<<l)<n;l++); return l;}int getfloat(float *y,char *s,float min,float max){ float x; if(!s) return 1; switch(s[0]) { case 0: return 1; default: sscanf(s,"%f",&x); }; if(x<min || x>max) return 1; *y=x; return 0;}int getint(char *s,int min,int max){ int n; if(!s) return -1; switch(s[0]) { case '+': n=1; break; case '-': n=0; break; case 0: n=1; break; default: n=atoi(s); }; if(n<min || n>max) return(-1); return n;}int rounddec(int x){ if(x<=1) return 1; if(x<=3) return 2; if(x<=7) return 5; return 10*rounddec((x+5)/10);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -