Changeset 61ce214 for tests/manipulatorsOutput3.cfa
 Timestamp:
 Jul 13, 2020, 6:04:33 PM (4 years ago)
 Branches:
 ADT, armeh, astexperimental, enum, forallpointerdecay, jacob/cs343translation, master, newast, newastuniqueexpr, pthreademulation, qualifiedEnum
 Children:
 a588f2a, cf5af9c
 Parents:
 ccb776b
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

tests/manipulatorsOutput3.cfa
rccb776b r61ce214 2 2 3 3 int main() { 4 // int128 printing 4 5 int128 x = 0xffff, y = 0x2; 6 5 7 x <<= 64; 6 8 x += 0xffff; … … 15 17 sout  nl; 16 18 19 int128 divisor = 0x4b3b4ca85a86c47a; 20 divisor <<= 16; 21 divisor += 0x98a224000000000; 22 23 // base 2 24 sout  "base 2"; 17 25 sout  bin(x); 18 26 sout  upcase(bin(x)); … … 23 31 sout  nl; 24 32 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"; 25 44 printf( "%#.10o\n", 0123 ); 26 45 sout  wd( 1,10, oct(0123) ); … … 60 79 sout  nl; 61 80 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 279 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 // oct90 sout  "base 8";91 81 sout  upcase(oct(divisor)); 92 82 sout  wd(38, upcase(oct(divisor))); … … 117 107 // hex 118 108 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 119 121 sout  upcase(hex(divisor)); 120 122 sout  wd(38, upcase(hex(divisor))); … … 124 126 sout  pad0(sign(wd(40, 38, upcase(hex(divisor))))); 125 127 sout  nl; 126 127 128 128 129 // extras … … 146 147 int128 i128; 147 148 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'; 148 276 149 277 i128 = 10; 150 278 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 156 285 i128 = 0x7fffffffffffffff; 157 286 i128 <<= 64; 158 287 i128 += 0xfffffffffffffffa; 159 288 160 // 161 volatile int stop = 20; 289 // for ( 20 ) { 290 volatile int stop = 20; // gcc compiler bug 162 291 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 168 297 sout  nl; 169 298 … … 186 315 ui128 += 1; 187 316 } 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 189 387 190 388 // Local Variables: // 191 389 // tabwidth: 4 // 192 // compilecommand: "cfa Wall Wextra amanipulatorsOutput3.cfa" //390 // compilecommand: "cfa Wall Wextra manipulatorsOutput3.cfa" // 193 391 // End: //
Note: See TracChangeset
for help on using the changeset viewer.