📄 kbn.h
字号:
/*************************************************************************** **** kbn.h (header file for kbn.cxx) **** **** C++ CLASS FOR BIG INTEGER ARITHMETIC **** **** Copyright (c)1996 Markku-Juhani O. Saarinen <mjos@math.jyu.fi> **** ***************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream.h>
#include "cryputil.h"
#ifndef _OBJECT_KBN_
#define _OBJECT_KBN_
typedef unsigned short kbn_s;typedef unsigned long kbn_l;#define KBN_BASE_BITS 12#define KBN_BASE (1<<KBN_BASE_BITS)#define KBN_BASE_MASK (KBN_BASE-1)#define KBN_VECTORSIZE 256// Datastring Objectclass kbn{ kbn_s vector[KBN_VECTORSIZE];public: kbn(); ~kbn(); // function
void loadasc( char *); // ascii format
char *saveasc();
void load(unsigned char *, size_t); // hex format size_t save(unsigned char *);
int log2();
kbn& sqr();
int testbit(int); void setbit(int, int); // equal operation kbn& operator= (kbn&); kbn& operator+= (kbn&); kbn& operator-= (kbn&); kbn& operator*= (kbn&); kbn& operator/= (kbn&); kbn& operator%= (kbn&); kbn& operator<<= (long); kbn& operator>>= (long); // convert operation: long int kbn& operator= (long); // calcu operation kbn& operator+ (kbn&); kbn& operator- (kbn&); kbn& operator* (kbn&); kbn& operator/ (kbn&); kbn& operator% (kbn&); kbn& operator<< (long); kbn& operator>> (long); // 1 parameter operation kbn& operator++ (); kbn& operator-- (); kbn& operator~ (); // compare operation int operator== (kbn &); int operator!= (kbn &); int operator<= (kbn &); int operator>= (kbn &); int operator< (kbn &); int operator> (kbn &);private: void copy(kbn_s *, kbn_s *); char *sprint (kbn_s *); int setlong (unsigned long, kbn_s *); int cmp(kbn_s *, kbn_s *); void add(kbn_s *, kbn_s *, kbn_s *); void sub (kbn_s *, kbn_s *, kbn_s *); void mul (kbn_s *, kbn_s *, kbn_s *); void rol(kbn_s *, int); void ror(kbn_s *, int); void div(kbn_s *, kbn_s *, kbn_s *); void mod(kbn_s *, kbn_s *, kbn_s *); int cntbits(short unsigned int *); void addlong(short unsigned int *, long int); void hexconv(char *, kbn_s *);};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -