CMGDK r49-rc2
K:/CMGDKv18/SDK/Include/hgl/type/Int128.H
浏览该文件的文档。
00001 # i f n d e f   H G L _ I N T 1 2 8 _ I N C L U D E 
00002  
00003  # d e f i n e   H G L _ I N T 1 2 8 _ I N C L U D E 
00004  
00005  
00006  
00007  # i n c l u d e < h g l / t y p e / D a t a T y p e . H > 
00008  
00009  n a m e s p a c e   h g l 
00010  
00011  { 
00012  
00013      / * * 
00014  
00015      *   1 2 8 MOteWpencSϑ, (uN'YpeЏ{
00016  
00017      * / 
00018  
00019      c l a s s   i n t 1 2 8                                                                                                                                                                         / / / i n t 1 2 8 MOteWpe
00020  
00021      { 
00022  
00023      p u b l i c : 
00024  
00025  
00026  
00027          u i n t 6 4   L o w P a r t ; 
00028  
00029          u i n t 6 4   H i g h P a r t ; 
00030  
00031          
00032  
00033      p u b l i c : 
00034  
00035  
00036  
00037          i n t 1 2 8 ( ) ; 
00038  
00039          i n t 1 2 8 ( u i n t 6 4   n ) ; 
00040  
00041          i n t 1 2 8 ( u i n t 6 4   H i g h P a r t , u i n t 6 4   L o w P a r t ) ; 
00042  
00043  
00044  
00045      / /         i n t 1 2 8   o p e r a t o r   =   ( i n t 1 2 8   n ) ; 
00046  
00047          i n t 1 2 8   o p e r a t o r   < <   ( i n t   n ) ; 
00048  
00049          i n t 1 2 8   o p e r a t o r   > >   ( i n t   n ) ; 
00050  
00051  
00052  
00053          f r i e n d   i n t 1 2 8   o p e r a t o r   /   ( i n t 1 2 8   n 1 , i n t 1 2 8   n 2 ) ; 
00054  
00055          f r i e n d   i n t 1 2 8   o p e r a t o r   *   ( i n t 1 2 8   n 1 , i n t 1 2 8   n 2 ) ; 
00056  
00057          f r i e n d   i n t 1 2 8   o p e r a t o r   %   ( i n t 1 2 8   n 1 , i n t 1 2 8   n 2 ) ; 
00058  
00059          f r i e n d   i n t 1 2 8   o p e r a t o r   +   ( i n t 1 2 8   n 1 , i n t 1 2 8   n 2 ) ; 
00060  
00061          f r i e n d   i n t 1 2 8   o p e r a t o r   -   ( i n t 1 2 8   n 1 , i n t 1 2 8   n 2 ) ; 
00062  
00063          f r i e n d   i n t 1 2 8   o p e r a t o r   + =   ( i n t 1 2 8   & n 1 , i n t 1 2 8   n 2 ) ; 
00064  
00065          f r i e n d   i n t 1 2 8   o p e r a t o r   - =   ( i n t 1 2 8   & n 1 , i n t 1 2 8   n 2 ) ; 
00066  
00067          f r i e n d   i n t 1 2 8   o p e r a t o r   * =   ( i n t 1 2 8   & n 1 , i n t 1 2 8   n 2 ) ; 
00068  
00069          f r i e n d   i n t 1 2 8   o p e r a t o r   / =   ( i n t 1 2 8   & n 1 , i n t 1 2 8   n 2 ) ; 
00070  
00071          f r i e n d   i n t 1 2 8   o p e r a t o r   |   ( i n t 1 2 8   n 1 , i n t 1 2 8   n 2 ) ; 
00072  
00073          f r i e n d   i n t 1 2 8   o p e r a t o r   &   ( i n t 1 2 8   n 1 , i n t 1 2 8   n 2 ) ; 
00074  
00075          i n l i n e   f r i e n d   v o i d   o p e r a t o r   - =   ( i n t 1 2 8   & n 1 , u n s i g n e d   i n t   n 2 ) 
00076  
00077          { 
00078  
00079              i f   ( n 1 . L o w P a r t < n 2 ) 
00080  
00081              n 1 . H i g h P a r t - - ; 
00082  
00083              n 1 . L o w P a r t - = n 2 ; 
00084  
00085          } 
00086  
00087          i n l i n e   f r i e n d   v o i d   o p e r a t o r   + +   ( i n t 1 2 8   & n ) 
00088  
00089          { 
00090  
00091              i f   ( + + n . L o w P a r t   = =   0 ) 
00092  
00093              + + n . H i g h P a r t ; 
00094  
00095          } 
00096  
00097          i n l i n e   f r i e n d   v o i d   o p e r a t o r   - -   ( i n t 1 2 8   & n ) 
00098  
00099          { 
00100  
00101              i f   ( n . L o w P a r t - -   = =   0 ) 
00102  
00103              n . H i g h P a r t - - ; 
00104  
00105          } 
00106  
00107          f r i e n d   b o o l   o p e r a t o r   = =   ( i n t 1 2 8   n 1 , i n t 1 2 8   n 2 ) ; 
00108  
00109          f r i e n d   b o o l   o p e r a t o r   >   ( i n t 1 2 8   n 1 , i n t 1 2 8   n 2 ) ; 
00110  
00111          f r i e n d   b o o l   o p e r a t o r   <   ( i n t 1 2 8   n 1 , i n t 1 2 8   n 2 ) ; 
00112  
00113          f r i e n d   b o o l   o p e r a t o r   ! =   ( i n t 1 2 8   n 1 , i n t 1 2 8   n 2 ) ; 
00114  
00115          f r i e n d   b o o l   o p e r a t o r   > =   ( i n t 1 2 8   n 1 , i n t 1 2 8   n 2 ) ; 
00116  
00117          f r i e n d   b o o l   o p e r a t o r   < =   ( i n t 1 2 8   n 1 , i n t 1 2 8   n 2 ) ; 
00118  
00119  
00120  
00121          v o i d   S e t ( u i n t 6 4   H i g h P a r t , u i n t 6 4   L o w P a r t ) ; 
00122  
00123          u i n t 6 4   G e t L o w P a r t ( )   { r e t u r n ( L o w P a r t ) ; } 
00124  
00125      } ; 
00126  
00127  
00128  
00129      i n l i n e   u i n t 6 4   i n t 1 2 8 t o 6 4 ( i n t 1 2 8   n )   { r e t u r n ( n . G e t L o w P a r t ( ) ) ; } 
00130  
00131      # d e f i n e   i n t 6 4 t o 1 2 8 ( h i g h , l o w )   ( i n t 1 2 8 ( ( h i g h ) , ( l o w ) ) ) 
00132  
00133      # d e f i n e   i s 1 2 8 p l u s ( x )   ( ( i n t ) ( x ) . H i g h P a r t > = 0 ) 
00134  
00135  
00136  
00137      # d e f i n e   I N T 1 2 8 E R R   i n t 6 4 t o 1 2 8 ( 0 x 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 , 0 ) 
00138  
00139      # d e f i n e   I N T 1 2 8 M A X   i n t 6 4 t o 1 2 8 ( 0 x 7 f f f f f f f f f f f f f f f , 0 ) 
00140  
00141  
00142  
00143      v o i d   i t o w ( i n t 1 2 8 , w c h a r _ t   * ) ; 
00144  
00145      i n t 1 2 8   w t o i ( w c h a r _ t   * ) ; 
00146  
00147  } / / n a m e s p a c e   h g l 
00148  
00149  # e n d i f / / H G L _ I N T 1 2 8 _ I N C L U D E 
00150  
00151  
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义