Changeset 61ce214


Ignore:
Timestamp:
Jul 13, 2020, 6:04:33 PM (16 months ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
arm-eh, jacob/cs343-translation, master, new-ast, new-ast-unique-expr
Children:
a588f2a, cf5af9c
Parents:
ccb776b
Message:

extend testing for int128

Location:
tests
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • tests/.expect/manipulatorsOutput3.x64.txt

    rccb776b r61ce214  
    33+1208907372870555465220095
    44
     5base 2
    560b11111111111111110000000000000000000000000000000000000000000000001111111111111111
    670B11111111111111110000000000000000000000000000000000000000000000001111111111111111
     
    10110X0000000000FFFF000000000000FFFF
    1112
     130b1001011001110110101011000110010011111001100011011000100011110100000000000000000
     140B1001011001110110101011000110010011111001100011011000100011110100000000000000000
     150B1001011001110110101011000110010011111001100011011000100011110100000000000000000
     160B1001011001110110101011000110010011111001100011011000100011110100000000000000000
     170B1001011001110110101011000110010011111001100011011000100011110100000000000000000
     180B1001011001110110101011000110010011111001100011011000100011110100000000000000000
     190B1001011001110110101011000110010011111001100011011000100011110100000000000000000
     20
     21base 8
    12220000000123
    13230000000123
     
    425203777777777777777777777777777777777776543211Y
    4353
     540113166530623714330436400000
     55          0113166530623714330436400000
     56            0113166530623714330436400000
     57  00000000000113166530623714330436400000
     58          000113166530623714330436400000
     59  00000000000113166530623714330436400000
     60
     61base 10
     62355272055279601493606400
     63355272055279601493606400
     64355272055279601493606400
     65355272055279601493606400
     66355272055279601493606400
     67              355272055279601493606400
     68               355272055279601493606400
     69                355272055279601493606400
     70          000000355272055279601493606400
     71  00000000000000355272055279601493606400
     720000000000000000355272055279601493606400
     730000000000000000355272055279601493606400
     74+000000000000000355272055279601493606400
     75
     76base 16
    44770xffff000000000000ffff
    45780XFFFF000000000000FFFF
     
    52850X00000000000000000000000000000FFFF000000000000FFFFX
    5386
    54 base 2
    55 0b1001011001110110101011000110010011111001100011011000100011110100000000000000000
    56 0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
    57 0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
    58 0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
    59 0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
    60 0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
    61 0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
    62 
    63 base 8
    64 0113166530623714330436400000
    65           0113166530623714330436400000
    66             0113166530623714330436400000
    67   00000000000113166530623714330436400000
    68           000113166530623714330436400000
    69   00000000000113166530623714330436400000
    70 
    71 base 10
    72 355272055279601493606400
    73 355272055279601493606400
    74 355272055279601493606400
    75 355272055279601493606400
    76 355272055279601493606400
    77               355272055279601493606400
    78                355272055279601493606400
    79                 355272055279601493606400
    80           000000355272055279601493606400
    81   00000000000000355272055279601493606400
    82 0000000000000000355272055279601493606400
    83 0000000000000000355272055279601493606400
    84 +000000000000000355272055279601493606400
    85 
    86 base 16
    87870X4B3B56327CC6C47A0000
    8888                0X4B3B56327CC6C47A0000
     
    108108+0000000000000000355272055279601493606400X
    109109+0000000000000000000000000000000123456789X
     110-1000 0xfffffffffffffffffffffffffffffc18 03777777777777777777777777777777777777776030
     1110b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011000
     112-999 0xfffffffffffffffffffffffffffffc19 03777777777777777777777777777777777777776031
     1130b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011001
     114-998 0xfffffffffffffffffffffffffffffc1a 03777777777777777777777777777777777777776032
     1150b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011010
     116-997 0xfffffffffffffffffffffffffffffc1b 03777777777777777777777777777777777777776033
     1170b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011011
     118-996 0xfffffffffffffffffffffffffffffc1c 03777777777777777777777777777777777777776034
     1190b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011100
     120-995 0xfffffffffffffffffffffffffffffc1d 03777777777777777777777777777777777777776035
     1210b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011101
     122-994 0xfffffffffffffffffffffffffffffc1e 03777777777777777777777777777777777777776036
     1230b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011110
     124-993 0xfffffffffffffffffffffffffffffc1f 03777777777777777777777777777777777777776037
     1250b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011111
     126-992 0xfffffffffffffffffffffffffffffc20 03777777777777777777777777777777777777776040
     1270b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100000
     128-991 0xfffffffffffffffffffffffffffffc21 03777777777777777777777777777777777777776041
     1290b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100001
     130
     131
     132-990                                                                                                                                                           
     133-990
     1340xfffffffffffffffffffffffffffffc22
     13503777777777777777777777777777777777777776042
     1360b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
     137-990
     1380xfffffffffffffffffffffffffffffc22
     13903777777777777777777777777777777777777776042
     1400b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
     141-990                           
     1420xfffffffffffffffffffffffffffffc22
     14303777777777777777777777777777777777777776042
     1440b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
     145-990                                                                                                                                                           
     1460xfffffffffffffffffffffffffffffc22                                                                                                                             
     14703777777777777777777777777777777777777776042                                                                                                                   
     1480b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010                             
     149-990                                                                                                                                                           
     1500XFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC22                                                                                                                             
     15103777777777777777777777777777777777777776042                                                                                                                   
     1520B11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010                             
     15322763282186957586699822X
     154                   04644000000000000000013056X
     15504644000000000000000013056                   X
     156                   04644000000000000000013056X
     15704644000000000000000013056                   X
     158                   04644000000000000000013056X
     15904644000000000000000013056                   X
     160         000000000004644000000000000000013056X
     161000000000004644000000000000000013056         X
     1620000000000000000000004644000000000000000013056X
     1630000000000000000000004644000000000000000013056X
     16404644000000000000000013056                   X
     16504644000000000000000013056                   X
     16604644000000000000000013056                   X
     16704644000000000000000013056                   X
     1680004644000000000000000013056                 X
     16903777777777777777773133777777777777777764722Y
     17003777777777777777773133777777777777777764722Y
     17103777777777777777773133777777777777777764722Y
     17203777777777777777773133777777777777777764722Y
     17303777777777777777773133777777777777777764722Y
     17403777777777777777773133777777777777777764722Y
     17503777777777777777773133777777777777777764722 Y
     1760000003777777777777777773133777777777777777764722Y
     17703777777777777777773133777777777777777764722 Y
     1780123                                         X
     17904644000000000000000013056                   X
     1800000000000000000000000000000000000000123     X
     1810000000000000004644000000000000000013056     X
     182000000000000000000000000000000000000000000123X
     183000000000000000000004644000000000000000013056X
     1840000000123                              X
     18504644000000000000000013056              X
     18603777777777777777773133777777777777777764722X
     1870000000000000000000000000000000000000123X
     1880000000000000004644000000000000000013056X
     18903777777777777777773133777777777777777764722X
     1901777777777777777777777
     1912777777777777777777777
     1923777777777777777777777
     1934777777777777777777777
     1945777777777777777777777
     1956777777777777777777777
     1967777777777777777777777
     19710777777777777777777777
     1980b11111111111111110000000000000000000000000000000000000000000000001111111111111111
     1990B11111111111111110000000000000000000000000000000000000000000000001111111111111111
     20011111111111111110000000000000000000000000000000000000000000000001111111111111111
     201             0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
     202   0B000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
     2030B00000000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
     2040b11111111111111110000000000000000000000000000000000000000000000001111111111111111
     2050B11111111111111110000000000000000000000000000000000000000000000001111111111111111
     20611111111111111110000000000000000000000000000000000000000000000001111111111111111
     2070B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
     2080B000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111   
     2090B011111111111111110000000000000000000000000000000000000000000000001111111111111111           
     2100B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
     2110B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
     2120B000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111   
     2130B0000000000000000000000000000000000000000000000001111111111111111 
     2140B00000000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
     215   0X000000000000000000000FFFF
     216   0X000000000000000000000FFFF
     2170X00000000000000000000000000FFFF
     2180X00000000000000000000000000FFFF
     21905000000000000000000123
     220                      05000000000000000000123
     22105000000000000000000123                      X
     2220000000123                              X
     2230377776000000000000000177777            X
     22405000000000000000000123                 X
     2250000000000000000000000000000000000000123X
     2260000000000000377776000000000000000177777X
     2270000000000000000005000000000000000000123X
    110228-10                  0xfffffffffffffffffffffffffffffff6 03777777777777777777777777777777777777777766
    1112290b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110110
     
    26137912
    26238013
     3810xfffffffffffffffffffe
     3820xfffffffffffffffffffe
     383
     384binary
     3850b11111111111111111111111111111111111111111111111111111111111111111111111111111110
     3860b11111111111111111111111111111111
     3870b1111111111111111111111111111111111111111111111111111111111111111
     3880b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
     3890b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
     3900xa2345678
     3910xa2345678a7654321
     3920xa2345678a7654321c2345678
     3930xa2345678a7654321c2345678d7554321
     394
     395octal
     3960377777777777777777777777776
     3970123456
     398012345665432
     39901234566543234567
     4000123456654323456776543
     401012345665432345677654323456
     40201234566543234567765432345665432
     4030123456654323456776543234566543234567
     404012345665432345677654323456654323456776543
     40501111111111111111111
     406011111111111111111111
     4070111111111111111111111
     408
     409decimal
     4101208925819614629174706174
     41142798 0123456
     4121402432282 012345665432
     41345954901031287 01234566543234567
     4141505850196993244515 0123456654323456776543
     415394749758663249135511342 0123456665432345677654323456
     41612935154696204706112391834394 012345665432234567765432345665432
     417423859149128410414395372834994551 01234566543234567776543234566543234567
     41813889016598639747063234935497057631587 0123456654323456776543323456654323456776543
     4191234567890123456789
     4201234567890123456789
     421170141183460469231731687303715884105727
     422340282366920938463463374607431768211455
     4239223372036854775808
     424340282366920938463463374607431768211455
     425170141183460469231731687303715884105727
     426
     427hexadecimal
     4280xfffffffffffffffffffe
     4290xffffffff
     4300xffffffffffffffff
     4310xffffffffffffffffffffffff
     4320xffffffffffffffffffffffffffffffff
     4330xa2345678
     4340xa2345678b7654321
     4350xa2345678b7654321c2345678
     4360xa2345678b7654321c2345678d7654321
     437
  • tests/manipulatorsOutput3.cfa

    rccb776b r61ce214  
    22
    33int main() {
     4        // int128 printing
    45        int128 x = 0xffff, y = 0x2;
     6
    57        x <<= 64;
    68        x += 0xffff;
     
    1517        sout | nl;
    1618
     19        int128 divisor = 0x4b3b4ca85a86c47a;
     20        divisor <<= 16;
     21        divisor += 0x98a224000000000;
     22       
     23        // base 2
     24        sout | "base 2";
    1725        sout | bin(x);
    1826        sout | upcase(bin(x));
     
    2331        sout | nl;
    2432
     33        sout | bin(divisor);
     34        sout | upcase(bin(divisor));
     35        sout | wd(38, upcase(bin(divisor)));
     36        sout | wd(40, upcase(bin(divisor)));
     37        sout | wd(40, 38, upcase(bin(divisor)));
     38        sout | wd(40, 30, upcase(bin(divisor)));
     39        sout | pad0(sign(wd(40, 38, upcase(bin(divisor)))));
     40        sout | nl;
     41       
     42        // oct
     43        sout | "base 8";
    2544        printf( "%#.10o\n", 0123 );
    2645        sout | wd( 1,10, oct(0123) );
     
    6079        sout | nl;
    6180
    62         sout | hex(x);
    63         sout | upcase(hex(x));
    64         sout | nobase(hex(x));
    65         sout | wd( 45, upcase(hex(x)) );
    66         sout | wd( 45,40, upcase(hex(x)) );
    67         sout | wd( 45,49, upcase(hex(x)) );
    68         sout | left(wd( 45, upcase(hex(x)) )) | 'X';
    69         sout | left(wd( 45,40, upcase(hex(x)) )) | 'X';
    70         sout | left(wd( 45,49, upcase(hex(x)) )) | 'X';
    71 
    72         sout | nl;
    73 
    74         int128 divisor = 0x4b3b4ca85a86c47a;
    75         divisor <<= 16;
    76         divisor += 0x98a224000000000;
    77        
    78         // base 2
    79         sout | "base 2";
    80         sout | bin(divisor);
    81         sout | upcase(bin(divisor));
    82         sout | wd(38, upcase(bin(divisor)));
    83         sout | wd(40, upcase(bin(divisor)));
    84         sout | wd(40, 38, upcase(bin(divisor)));
    85         sout | wd(40, 30, upcase(bin(divisor)));
    86         sout | pad0(sign(wd(40, 38, upcase(bin(divisor)))));
    87         sout | nl;
    88        
    89         // oct
    90         sout | "base 8";
    9181        sout | upcase(oct(divisor));
    9282        sout | wd(38, upcase(oct(divisor)));
     
    117107        // hex
    118108        sout | "base 16";
     109
     110        sout | hex(x);
     111        sout | upcase(hex(x));
     112        sout | nobase(hex(x));
     113        sout | wd( 45, upcase(hex(x)) );
     114        sout | wd( 45,40, upcase(hex(x)) );
     115        sout | wd( 45,49, upcase(hex(x)) );
     116        sout | left(wd( 45, upcase(hex(x)) )) | 'X';
     117        sout | left(wd( 45,40, upcase(hex(x)) )) | 'X';
     118        sout | left(wd( 45,49, upcase(hex(x)) )) | 'X';
     119        sout | nl;
     120
    119121        sout | upcase(hex(divisor));
    120122        sout | wd(38, upcase(hex(divisor)));
     
    124126        sout | pad0(sign(wd(40, 38, upcase(hex(divisor)))));
    125127        sout | nl;
    126 
    127128
    128129        // extras
     
    146147        int128 i128;
    147148        unsigned int128 ui128;
     149        i128 = -1000;
     150        for ( 10 ) {
     151                sout | left( sign( wd( 2, i128 ) ) ) | left( wd( 2, hex( i128 ) ) ) | left( wd( 2, oct( i128 ) ) );
     152                sout | left( wd( 2, bin( i128 ) ) );
     153                i128 += 1;
     154        }
     155        sout | nl;
     156        sout | nl;
     157
     158        ui128 = 0x7fffffffffffffff;
     159        ui128 <<= 64;
     160        ui128 += 0xffffffffffffffff;
     161        sout | left( wd( 160, i128 ) );
     162        sout | left( sign( wd( 0, i128 ) ) );
     163        sout | left( wd( 0, hex( i128 ) ) );
     164        sout | left( wd( 0, oct( i128 ) ) );
     165        sout | left( wd( 0, bin( i128 ) ) );
     166        sout | left( sign( wd( 1, i128 ) ) );
     167        sout | left( wd( 1, hex( i128 ) ) );
     168        sout | left( wd( 1, oct( i128 ) ) );
     169        sout | left( wd( 1, bin( i128 ) ) );
     170        sout | left( sign( wd( 32, i128 ) ) );
     171        sout | left( wd( 32, hex( i128 ) ) );
     172        sout | left( wd( 32, oct( i128 ) ) );
     173        sout | left( wd( 32, bin( i128 ) ) );
     174        sout | left( sign( wd( 160, i128 ) ) );
     175        sout | left( wd( 160, hex( i128 ) ) );
     176        sout | left( wd( 160, oct( i128 ) ) );
     177        sout | left( wd( 160, bin( i128 ) ) );
     178        sout | left( sign( wd( 160, i128 ) ) );
     179        sout | left( wd( 160, upcase(hex( i128 )) ) );
     180        sout | left( wd( 160, upcase(oct( i128 ) )) );
     181        sout | left( wd( 160, upcase(bin( i128 )) ) );
     182
     183        x = 1234;
     184        x <<= 64;
     185        x += 5678;
     186        sout | x | 'X';
     187        sout | wd(45, 20, oct(x)) | 'X';
     188        sout | left(wd(45, 20, oct(x))) | 'X';
     189        sout | wd(45, 21, oct(x)) | 'X';
     190        sout | left(wd(45, 21, oct(x))) | 'X';
     191        sout | wd(45, 22, oct(x)) | 'X';
     192        sout | left(wd(45, 22, oct(x))) | 'X';
     193        sout | wd(45, 36, oct(x)) | 'X';
     194        sout | left(wd(45, 36, oct(x))) | 'X';
     195        sout | wd(45, 46, oct(x)) | 'X';
     196        sout | left(wd(45, 46, oct(x))) | 'X';
     197        sout | left(wd(45, 20, oct(x))) | 'X';
     198        sout | left(wd(45, 22, oct(x))) | 'X';
     199        sout | left(wd(45, 24, oct(x))) | 'X';
     200        sout | left(wd(45, 26, oct(x))) | 'X';
     201        sout | left(wd(45, 28, oct(x))) | 'X';
     202
     203        y = -x;
     204        sout | oct(y) | 'Y';
     205        sout | left(wd(0, oct(y))) | 'Y';
     206        sout | left(wd(20, oct(y))) | 'Y';
     207        sout | left(wd(26, oct(y))) | 'Y';
     208        sout | left(wd(40, oct(y))) | 'Y';
     209        sout | left(wd(41, oct(y))) | 'Y';
     210        sout | left(wd(45, oct(y))) | 'Y';
     211        sout | left(wd(45, 49, oct(y))) | 'Y';
     212        sout | left(wd(45, 4, oct(y))) | 'Y';
     213        sout | left(wd( 45, oct(0123) )) | 'X';
     214        sout | left(wd( 45, oct(x) )) | 'X';
     215        sout | left(wd( 45,40, oct(0123) )) | 'X';
     216        sout | left(wd( 45,40, oct(x) )) | 'X';
     217        sout | left(wd( 40,45, oct(0123) )) | 'X';
     218        sout | left(wd( 40,45, oct(x) )) | 'X';
     219        sout | left(wd( 40,10, oct(0123) )) | 'X';
     220        sout | left(wd( 40,10, oct(x) )) | 'X';
     221        sout | left(wd( 40,10, oct(y) )) | 'X';
     222        sout | left(wd( 10,40, oct(0123) )) | 'X';
     223        sout | left(wd( 10,40, oct(x) )) | 'X';
     224        sout | left(wd( 10,40, oct(y) )) | 'X';
     225
     226        x = 0xffff, y = 0x2;
     227        int128 z = 0x_ffff_ffff_ffff_ffff;
     228        x <<= 64;
     229        x += 0xffff;
     230        y <<= 64;
     231        y += 0123;
     232        y |= 0x8000000000000000;
     233
     234        for ( int128 i = 0; i < 8; i += 1 ) {
     235                sout | nobase(oct(z + 0x8000000000000000 * i));
     236        } // for
     237
     238        sout | bin(x);
     239        sout | upcase(bin(x));
     240        sout | nobase(bin(x));
     241
     242        sout | wd( 95, upcase(bin(x)) );
     243        sout | wd( 95,90, upcase(bin(x)) );
     244        sout | wd( 90,95, upcase(bin(x)) );
     245
     246        sout | left(bin(x));
     247        sout | left(upcase(bin(x)));
     248        sout | left(nobase(bin(x)));
     249
     250        sout | left(wd( 95, upcase(bin(x)) ));
     251        sout | left(wd( 95,90, upcase(bin(x)) ));
     252        sout | left(wd( 95,81, upcase(bin(x)) ));
     253
     254        sout | left(wd( 95,80, upcase(bin(x)) ));
     255        sout | left(wd( 95,79, upcase(bin(x)) ));
     256        sout | left(wd( 95,90, upcase(bin(0xffff)) ));
     257
     258        sout | left(wd( 68,64, upcase(bin(0xffff)) ));
     259        sout | left(wd( 90,95, upcase(bin(x)) ));
     260
     261        printf( "%#30.25X\n", 0xffff );
     262        sout | wd( 30,25, upcase(hex(0xffff)) );
     263        printf( "%#25.30X\n", 0xffff );
     264        sout | wd( 25,30, upcase(hex(0xffff)) );
     265
     266        sout | oct(y);
     267        sout | wd( 45, oct(y) );
     268        sout | left(wd( 45, oct(y) )) | 'X';
     269
     270        sout | left(wd( 40,10, oct(0123) )) | 'X';
     271        sout | left(wd( 40,10, oct(x) )) | 'X';
     272        sout | left(wd( 40,10, oct(y) )) | 'X';
     273        sout | left(wd( 10,40, oct(0123) )) | 'X';
     274        sout | left(wd( 10,40, oct(x) )) | 'X';
     275        sout | left(wd( 10,40, oct(y) )) | 'X';
    148276
    149277        i128 = -10;
    150278        for ( 25 ) {
    151         sout | left( sign( wd( 20, i128 ) ) ) | left( wd( 20, hex( i128 ) ) ) | left( wd( 20, oct( i128 ) ) );
    152         sout | left( wd( 20, bin( i128 ) ) );
    153         i128 += 1;
    154         }
    155         sout | nl;
     279                sout | left( sign( wd( 20, i128 ) ) ) | left( wd( 20, hex( i128 ) ) ) | left( wd( 20, oct( i128 ) ) );
     280                sout | left( wd( 20, bin( i128 ) ) );
     281                i128 += 1;
     282        } // for
     283        sout | nl;
     284
    156285        i128 = 0x7fffffffffffffff;
    157286        i128 <<= 64;
    158287        i128 += 0xfffffffffffffffa;
    159288
    160 //    for ( 20 ) {
    161         volatile int stop = 20;
     289//      for ( 20 ) {
     290        volatile int stop = 20;                                                         // gcc compiler bug
    162291        for ( int i = 0; i < stop; i += 1 ) {
    163         sout | i128;
    164         sout | left( sign( wd( 45, i128 ) ) ) | left( wd( 45, hex( i128 ) ) ) | left( wd( 45, oct( i128 ) ) );
    165         sout | left( wd( 45, bin( i128 ) ) );
    166         i128 += 1;
    167         }
     292                sout | i128;
     293                sout | left( sign( wd( 45, i128 ) ) ) | left( wd( 45, hex( i128 ) ) ) | left( wd( 45, oct( i128 ) ) );
     294                sout | left( wd( 45, bin( i128 ) ) );
     295                i128 += 1;
     296        } // for
    168297        sout | nl;
    169298
     
    186315                ui128 += 1;
    187316        }
    188 }
     317
     318
     319        // int128 constants (and printing)
     320        int128 v = 0xffff_ffffffff_ffffffff_L128 + 0xffffffff_ffffffff_ffffffff_ffffffff_L128;
     321        sout | hex(v);
     322        v = 0xffff_ffffffff_ffffffff_L128 + 0xffffffff_ffffffff_ffffffff_ffffffff_L128;
     323        sout | hex(v);
     324        sout | nl;
     325
     326        sout | "binary";
     327        sout | bin(v);
     328        sout | bin(0b_11111111111111111111111111111111_L128);
     329        sout | bin(0b_11111111111111111111111111111111_11111111111111111111111111111111_L128);
     330        sout | bin(0b_11111111111111111111111111111111_11111111111111111111111111111111_11111111111111111111111111111111_L128);
     331        sout | bin(0b_11111111111111111111111111111111_11111111111111111111111111111111_11111111111111111111111111111111_11111111111111111111111111111111_L128);
     332        sout | hex(0b_10100010001101000101011001111000_L128);
     333        sout | hex(0b_10100010001101000101011001111000_10100111011001010100001100100001_L128);
     334        sout | hex(0b_10100010001101000101011001111000_10100111011001010100001100100001_11000010001101000101011001111000_L128);
     335        sout | hex(0b_10100010001101000101011001111000_10100111011001010100001100100001_11000010001101000101011001111000_11010111010101010100001100100001_L128);
     336        sout | nl;
     337
     338        sout | "octal";
     339        sout | oct(v);
     340        sout | oct(0_123456_L128u);
     341        sout | oct(0_123456_65432_uL128);
     342        sout | oct(0_123456_65432_34567_L128);
     343        sout | oct(0_123456_65432_34567_76543_L128);
     344        sout | oct(0_123456_65432_34567_76543_23456_L128);
     345        sout | oct(0_123456_65432_34567_76543_23456_65432_L128);
     346        sout | oct(0_123456_65432_34567_76543_23456_65432_34567_L128);
     347        sout | oct(0_123456_65432_34567_76543_23456_65432_34567_76543_L128);
     348        sout | oct(0_1111111111111111111L);
     349        sout | oct(0_11111111111111111111L);
     350        sout | oct(0_111111111111111111111L);
     351        sout | nl;
     352
     353        sout | "decimal";
     354        sout | v;
     355        sout | 42_798_L128 | oct(42_798_L128);
     356        sout | 1_402_432_282_L128 | oct(1_402_432_282_L128);
     357        sout | 45_954_901_031_287_L128 | oct(45_954_901_031_287_L128);
     358        sout | 1_505_850_196_993_244_515_L128 | oct(1_505_850_196_993_244_515_L128);
     359        sout | 394_749_758_663_249_135_511_342_L128 | oct(394_749_758_663_249_135_511_342_L128);
     360        sout | 12_935_154_696_204_706_112_391_834_394_L128 | oct(12_935_154_696_204_706_112_391_834_394_L128);
     361        sout | 423_859_149_128_410_414_395_372_834_994_551_L128 | oct(423_859_149_128_410_414_395_372_834_994_551_L128);
     362        sout | 13_889_016_598_639_747_063_234_935_497_057_631_587_L128 | oct(13_889_016_598_639_747_063_234_935_497_057_631_587_L128);
     363        sout | 1234567890123456789_uL128;
     364        sout | 1234567890123456789_L128u;
     365        sout | 0x_7fffffff_ffffffff_ffffffff_ffffffff_L128;
     366        sout | 0x_ffffffff_ffffffff_ffffffff_ffffffff_L128;
     367        sout | 0x_80000000_00000000_00000000_00000000_L128;
     368        unsigned int128 vv;
     369        vv = 340282366920938463463374607431768211455_L128u;
     370        sout | vv;
     371        vv = 170141183460469231731687303715884105727_L128;
     372        sout | vv;
     373        sout | nl;
     374
     375        sout | "hexadecimal";
     376        sout | hex(v);
     377        sout | hex(0x_ffffffff_L128);
     378        sout | hex(0x_ffffffff_ffffffff_L128);
     379        sout | hex(0x_ffffffff_ffffffff_ffffffff_L128);
     380        sout | hex(0xffffffff_ffffffff_ffffffff_ffffffff_L128);
     381        sout | hex(0x_a2345678_L128);
     382        sout | hex(0x_a2345678_b7654321_L128);
     383        sout | hex(0x_a2345678_b7654321_c2345678_L128);
     384        sout | hex(0x_a2345678_b7654321_c2345678_d7654321_L128);
     385        sout | nl;
     386} // main
    189387
    190388// Local Variables: //
    191389// tab-width: 4 //
    192 // compile-command: "cfa -Wall -Wextra amanipulatorsOutput3.cfa" //
     390// compile-command: "cfa -Wall -Wextra manipulatorsOutput3.cfa" //
    193391// End: //
Note: See TracChangeset for help on using the changeset viewer.