440
450
select 1 >= 2 >= 3, (1 >= 2) >= 3, 1 >= (2 >= 3);
441
451
1 >= 2 >= 3 (1 >= 2) >= 3 1 >= (2 >= 3)
443
Testing that | is associative
444
select 0xF0 | 0x0F | 0x55, (0xF0 | 0x0F) | 0x55, 0xF0 | (0x0F | 0x55);
445
0xF0 | 0x0F | 0x55 (0xF0 | 0x0F) | 0x55 0xF0 | (0x0F | 0x55)
447
Testing that & is associative
448
select 0xF5 & 0x5F & 0x55, (0xF5 & 0x5F) & 0x55, 0xF5 & (0x5F & 0x55);
449
0xF5 & 0x5F & 0x55 (0xF5 & 0x5F) & 0x55 0xF5 & (0x5F & 0x55)
451
Testing that << is left associative
452
select 4 << 3 << 2, (4 << 3) << 2, 4 << (3 << 2);
453
4 << 3 << 2 (4 << 3) << 2 4 << (3 << 2)
455
Testing that >> is left associative
456
select 256 >> 3 >> 2, (256 >> 3) >> 2, 256 >> (3 >> 2);
457
256 >> 3 >> 2 (256 >> 3) >> 2 256 >> (3 >> 2)
459
Testing that & has precedence over |
460
select 0xF0 & 0x0F | 0x55, (0xF0 & 0x0F) | 0x55, 0xF0 & (0x0F | 0x55);
461
0xF0 & 0x0F | 0x55 (0xF0 & 0x0F) | 0x55 0xF0 & (0x0F | 0x55)
463
select 0x55 | 0xF0 & 0x0F, (0x55 | 0xF0) & 0x0F, 0x55 | (0xF0 & 0x0F);
464
0x55 | 0xF0 & 0x0F (0x55 | 0xF0) & 0x0F 0x55 | (0xF0 & 0x0F)
466
Testing that << has precedence over |
467
select 0x0F << 4 | 0x0F, (0x0F << 4) | 0x0F, 0x0F << (4 | 0x0F);
468
0x0F << 4 | 0x0F (0x0F << 4) | 0x0F 0x0F << (4 | 0x0F)
470
select 0x0F | 0x0F << 4, (0x0F | 0x0F) << 4, 0x0F | (0x0F << 4);
471
0x0F | 0x0F << 4 (0x0F | 0x0F) << 4 0x0F | (0x0F << 4)
473
Testing that >> has precedence over |
474
select 0xF0 >> 4 | 0xFF, (0xF0 >> 4) | 0xFF, 0xF0 >> (4 | 0xFF);
475
0xF0 >> 4 | 0xFF (0xF0 >> 4) | 0xFF 0xF0 >> (4 | 0xFF)
477
select 0xFF | 0xF0 >> 4, (0xFF | 0xF0) >> 4, 0xFF | (0xF0 >> 4);
478
0xFF | 0xF0 >> 4 (0xFF | 0xF0) >> 4 0xFF | (0xF0 >> 4)
480
Testing that << has precedence over &
481
select 0x0F << 4 & 0xF0, (0x0F << 4) & 0xF0, 0x0F << (4 & 0xF0);
482
0x0F << 4 & 0xF0 (0x0F << 4) & 0xF0 0x0F << (4 & 0xF0)
484
select 0xF0 & 0x0F << 4, (0xF0 & 0x0F) << 4, 0xF0 & (0x0F << 4);
485
0xF0 & 0x0F << 4 (0xF0 & 0x0F) << 4 0xF0 & (0x0F << 4)
487
Testing that >> has precedence over &
488
select 0xF0 >> 4 & 0x55, (0xF0 >> 4) & 0x55, 0xF0 >> (4 & 0x55);
489
0xF0 >> 4 & 0x55 (0xF0 >> 4) & 0x55 0xF0 >> (4 & 0x55)
491
select 0x0F & 0xF0 >> 4, (0x0F & 0xF0) >> 4, 0x0F & (0xF0 >> 4);
492
0x0F & 0xF0 >> 4 (0x0F & 0xF0) >> 4 0x0F & (0xF0 >> 4)
494
Testing that >> and << have the same precedence
495
select 0xFF >> 4 << 2, (0xFF >> 4) << 2, 0xFF >> (4 << 2);
496
0xFF >> 4 << 2 (0xFF >> 4) << 2 0xFF >> (4 << 2)
498
select 0x0F << 4 >> 2, (0x0F << 4) >> 2, 0x0F << (4 >> 2);
499
0x0F << 4 >> 2 (0x0F << 4) >> 2 0x0F << (4 >> 2)
501
453
Testing that binary + is associative
502
454
select 1 + 2 + 3, (1 + 2) + 3, 1 + (2 + 3);
503
455
1 + 2 + 3 (1 + 2) + 3 1 + (2 + 3)
513
465
select 1 - 2 + 3, (1 - 2) + 3, 1 - (2 + 3);
514
466
1 - 2 + 3 (1 - 2) + 3 1 - (2 + 3)
516
Testing that binary + has precedence over |
517
select 0xF0 + 0x0F | 0x55, (0xF0 + 0x0F) | 0x55, 0xF0 + (0x0F | 0x55);
518
0xF0 + 0x0F | 0x55 (0xF0 + 0x0F) | 0x55 0xF0 + (0x0F | 0x55)
520
select 0x55 | 0xF0 + 0x0F, (0x55 | 0xF0) + 0x0F, 0x55 | (0xF0 + 0x0F);
521
0x55 | 0xF0 + 0x0F (0x55 | 0xF0) + 0x0F 0x55 | (0xF0 + 0x0F)
523
Testing that binary + has precedence over &
524
select 0xF0 + 0x0F & 0x55, (0xF0 + 0x0F) & 0x55, 0xF0 + (0x0F & 0x55);
525
0xF0 + 0x0F & 0x55 (0xF0 + 0x0F) & 0x55 0xF0 + (0x0F & 0x55)
527
select 0x55 & 0xF0 + 0x0F, (0x55 & 0xF0) + 0x0F, 0x55 & (0xF0 + 0x0F);
528
0x55 & 0xF0 + 0x0F (0x55 & 0xF0) + 0x0F 0x55 & (0xF0 + 0x0F)
530
Testing that binary + has precedence over <<
531
select 2 + 3 << 4, (2 + 3) << 4, 2 + (3 << 4);
532
2 + 3 << 4 (2 + 3) << 4 2 + (3 << 4)
534
select 3 << 4 + 2, (3 << 4) + 2, 3 << (4 + 2);
535
3 << 4 + 2 (3 << 4) + 2 3 << (4 + 2)
537
Testing that binary + has precedence over >>
538
select 4 + 3 >> 2, (4 + 3) >> 2, 4 + (3 >> 2);
539
4 + 3 >> 2 (4 + 3) >> 2 4 + (3 >> 2)
541
select 3 >> 2 + 1, (3 >> 2) + 1, 3 >> (2 + 1);
542
3 >> 2 + 1 (3 >> 2) + 1 3 >> (2 + 1)
544
Testing that binary - has precedence over |
545
select 0xFF - 0x0F | 0x55, (0xFF - 0x0F) | 0x55, 0xFF - (0x0F | 0x55);
546
0xFF - 0x0F | 0x55 (0xFF - 0x0F) | 0x55 0xFF - (0x0F | 0x55)
548
select 0x55 | 0xFF - 0xF0, (0x55 | 0xFF) - 0xF0, 0x55 | (0xFF - 0xF0);
549
0x55 | 0xFF - 0xF0 (0x55 | 0xFF) - 0xF0 0x55 | (0xFF - 0xF0)
551
Testing that binary - has precedence over &
552
select 0xFF - 0xF0 & 0x55, (0xFF - 0xF0) & 0x55, 0xFF - (0xF0 & 0x55);
553
0xFF - 0xF0 & 0x55 (0xFF - 0xF0) & 0x55 0xFF - (0xF0 & 0x55)
555
select 0x55 & 0xFF - 0xF0, (0x55 & 0xFF) - 0xF0, 0x55 & (0xFF - 0xF0);
556
0x55 & 0xFF - 0xF0 (0x55 & 0xFF) - 0xF0 0x55 & (0xFF - 0xF0)
558
Testing that binary - has precedence over <<
559
select 16 - 3 << 2, (16 - 3) << 2, 16 - (3 << 2);
560
16 - 3 << 2 (16 - 3) << 2 16 - (3 << 2)
562
select 4 << 3 - 2, (4 << 3) - 2, 4 << (3 - 2);
563
4 << 3 - 2 (4 << 3) - 2 4 << (3 - 2)
565
Testing that binary - has precedence over >>
566
select 16 - 3 >> 2, (16 - 3) >> 2, 16 - (3 >> 2);
567
16 - 3 >> 2 (16 - 3) >> 2 16 - (3 >> 2)
569
select 16 >> 3 - 2, (16 >> 3) - 2, 16 >> (3 - 2);
570
16 >> 3 - 2 (16 >> 3) - 2 16 >> (3 - 2)
572
468
Testing that * is associative
573
469
select 2 * 3 * 4, (2 * 3) * 4, 2 * (3 * 4);
574
470
2 * 3 * 4 (2 * 3) * 4 2 * (3 * 4)
576
Testing that * has precedence over |
577
select 2 * 0x40 | 0x0F, (2 * 0x40) | 0x0F, 2 * (0x40 | 0x0F);
578
2 * 0x40 | 0x0F (2 * 0x40) | 0x0F 2 * (0x40 | 0x0F)
580
select 0x0F | 2 * 0x40, (0x0F | 2) * 0x40, 0x0F | (2 * 0x40);
581
0x0F | 2 * 0x40 (0x0F | 2) * 0x40 0x0F | (2 * 0x40)
583
Testing that * has precedence over &
584
select 2 * 0x40 & 0x55, (2 * 0x40) & 0x55, 2 * (0x40 & 0x55);
585
2 * 0x40 & 0x55 (2 * 0x40) & 0x55 2 * (0x40 & 0x55)
587
select 0xF0 & 2 * 0x40, (0xF0 & 2) * 0x40, 0xF0 & (2 * 0x40);
588
0xF0 & 2 * 0x40 (0xF0 & 2) * 0x40 0xF0 & (2 * 0x40)
590
Testing that * has precedence over <<
591
select 5 * 3 << 4, (5 * 3) << 4, 5 * (3 << 4);
592
5 * 3 << 4 (5 * 3) << 4 5 * (3 << 4)
594
select 2 << 3 * 4, (2 << 3) * 4, 2 << (3 * 4);
595
2 << 3 * 4 (2 << 3) * 4 2 << (3 * 4)
597
Testing that * has precedence over >>
598
select 3 * 4 >> 2, (3 * 4) >> 2, 3 * (4 >> 2);
599
3 * 4 >> 2 (3 * 4) >> 2 3 * (4 >> 2)
601
select 4 >> 2 * 3, (4 >> 2) * 3, 4 >> (2 * 3);
602
4 >> 2 * 3 (4 >> 2) * 3 4 >> (2 * 3)
604
472
Testing that * has precedence over binary +
605
473
select 2 * 3 + 4, (2 * 3) + 4, 2 * (3 + 4);
606
474
2 * 3 + 4 (2 * 3) + 4 2 * (3 + 4)
619
487
select 15 / 5 / 3, (15 / 5) / 3, 15 / (5 / 3);
620
488
15 / 5 / 3 (15 / 5) / 3 15 / (5 / 3)
621
489
1.00000000 1.00000000 9.0000
622
Testing that / has precedence over |
623
select 105 / 5 | 2, (105 / 5) | 2, 105 / (5 | 2);
624
105 / 5 | 2 (105 / 5) | 2 105 / (5 | 2)
626
select 105 | 2 / 5, (105 | 2) / 5, 105 | (2 / 5);
627
105 | 2 / 5 (105 | 2) / 5 105 | (2 / 5)
629
Testing that / has precedence over &
630
select 105 / 5 & 0x0F, (105 / 5) & 0x0F, 105 / (5 & 0x0F);
631
105 / 5 & 0x0F (105 / 5) & 0x0F 105 / (5 & 0x0F)
633
select 0x0F & 105 / 5, (0x0F & 105) / 5, 0x0F & (105 / 5);
634
0x0F & 105 / 5 (0x0F & 105) / 5 0x0F & (105 / 5)
636
Testing that / has precedence over <<
637
select 0x80 / 4 << 2, (0x80 / 4) << 2, 0x80 / (4 << 2);
638
0x80 / 4 << 2 (0x80 / 4) << 2 0x80 / (4 << 2)
640
select 0x80 << 4 / 2, (0x80 << 4) / 2, 0x80 << (4 / 2);
641
0x80 << 4 / 2 (0x80 << 4) / 2 0x80 << (4 / 2)
643
Testing that / has precedence over >>
644
select 0x80 / 4 >> 2, (0x80 / 4) >> 2, 0x80 / (4 >> 2);
645
0x80 / 4 >> 2 (0x80 / 4) >> 2 0x80 / (4 >> 2)
647
select 0x80 >> 4 / 2, (0x80 >> 4) / 2, 0x80 >> (4 / 2);
648
0x80 >> 4 / 2 (0x80 >> 4) / 2 0x80 >> (4 / 2)
650
490
Testing that / has precedence over binary +
651
491
select 0x80 / 2 + 2, (0x80 / 2) + 2, 0x80 / (2 + 2);
652
492
0x80 / 2 + 2 (0x80 / 2) + 2 0x80 / (2 + 2)
661
501
select 0x80 - 4 / 2, (0x80 - 4) / 2, 0x80 - (4 / 2);
662
502
0x80 - 4 / 2 (0x80 - 4) / 2 0x80 - (4 / 2)
663
503
126.0000 62.0000 126.0000
664
Testing that ^ is associative
665
select 0xFF ^ 0xF0 ^ 0x0F, (0xFF ^ 0xF0) ^ 0x0F, 0xFF ^ (0xF0 ^ 0x0F);
666
0xFF ^ 0xF0 ^ 0x0F (0xFF ^ 0xF0) ^ 0x0F 0xFF ^ (0xF0 ^ 0x0F)
668
select 0xFF ^ 0xF0 ^ 0x55, (0xFF ^ 0xF0) ^ 0x55, 0xFF ^ (0xF0 ^ 0x55);
669
0xFF ^ 0xF0 ^ 0x55 (0xFF ^ 0xF0) ^ 0x55 0xFF ^ (0xF0 ^ 0x55)
671
Testing that ^ has precedence over |
672
select 0xFF ^ 0xF0 | 0x0F, (0xFF ^ 0xF0) | 0x0F, 0xFF ^ (0xF0 | 0x0F);
673
0xFF ^ 0xF0 | 0x0F (0xFF ^ 0xF0) | 0x0F 0xFF ^ (0xF0 | 0x0F)
675
select 0xF0 | 0xFF ^ 0xF0, (0xF0 | 0xFF) ^ 0xF0, 0xF0 | (0xFF ^ 0xF0);
676
0xF0 | 0xFF ^ 0xF0 (0xF0 | 0xFF) ^ 0xF0 0xF0 | (0xFF ^ 0xF0)
678
Testing that ^ has precedence over &
679
select 0xFF ^ 0xF0 & 0x0F, (0xFF ^ 0xF0) & 0x0F, 0xFF ^ (0xF0 & 0x0F);
680
0xFF ^ 0xF0 & 0x0F (0xFF ^ 0xF0) & 0x0F 0xFF ^ (0xF0 & 0x0F)
682
select 0x0F & 0xFF ^ 0xF0, (0x0F & 0xFF) ^ 0xF0, 0x0F & (0xFF ^ 0xF0);
683
0x0F & 0xFF ^ 0xF0 (0x0F & 0xFF) ^ 0xF0 0x0F & (0xFF ^ 0xF0)
685
Testing that ^ has precedence over <<
686
select 0xFF ^ 0xF0 << 2, (0xFF ^ 0xF0) << 2, 0xFF ^ (0xF0 << 2);
687
0xFF ^ 0xF0 << 2 (0xFF ^ 0xF0) << 2 0xFF ^ (0xF0 << 2)
689
select 0x0F << 2 ^ 0xFF, (0x0F << 2) ^ 0xFF, 0x0F << (2 ^ 0xFF);
690
0x0F << 2 ^ 0xFF (0x0F << 2) ^ 0xFF 0x0F << (2 ^ 0xFF)
692
Testing that ^ has precedence over >>
693
select 0xFF ^ 0xF0 >> 2, (0xFF ^ 0xF0) >> 2, 0xFF ^ (0xF0 >> 2);
694
0xFF ^ 0xF0 >> 2 (0xFF ^ 0xF0) >> 2 0xFF ^ (0xF0 >> 2)
696
select 0xFF >> 2 ^ 0xF0, (0xFF >> 2) ^ 0xF0, 0xFF >> (2 ^ 0xF0);
697
0xFF >> 2 ^ 0xF0 (0xFF >> 2) ^ 0xF0 0xFF >> (2 ^ 0xF0)
699
Testing that ^ has precedence over binary +
700
select 0xFF ^ 0xF0 + 0x0F, (0xFF ^ 0xF0) + 0x0F, 0xFF ^ (0xF0 + 0x0F);
701
0xFF ^ 0xF0 + 0x0F (0xFF ^ 0xF0) + 0x0F 0xFF ^ (0xF0 + 0x0F)
703
select 0x0F + 0xFF ^ 0xF0, (0x0F + 0xFF) ^ 0xF0, 0x0F + (0xFF ^ 0xF0);
704
0x0F + 0xFF ^ 0xF0 (0x0F + 0xFF) ^ 0xF0 0x0F + (0xFF ^ 0xF0)
706
Testing that ^ has precedence over binary -
707
select 0xFF ^ 0xF0 - 1, (0xFF ^ 0xF0) - 1, 0xFF ^ (0xF0 - 1);
708
0xFF ^ 0xF0 - 1 (0xFF ^ 0xF0) - 1 0xFF ^ (0xF0 - 1)
710
select 0x55 - 0x0F ^ 0x55, (0x55 - 0x0F) ^ 0x55, 0x55 - (0x0F ^ 0x55);
711
0x55 - 0x0F ^ 0x55 (0x55 - 0x0F) ^ 0x55 0x55 - (0x0F ^ 0x55)
713
Testing that ^ has precedence over *
714
select 0xFF ^ 0xF0 * 2, (0xFF ^ 0xF0) * 2, 0xFF ^ (0xF0 * 2);
715
0xFF ^ 0xF0 * 2 (0xFF ^ 0xF0) * 2 0xFF ^ (0xF0 * 2)
717
select 2 * 0xFF ^ 0xF0, (2 * 0xFF) ^ 0xF0, 2 * (0xFF ^ 0xF0);
718
2 * 0xFF ^ 0xF0 (2 * 0xFF) ^ 0xF0 2 * (0xFF ^ 0xF0)
720
Testing that ^ has precedence over /
721
select 0xFF ^ 0xF0 / 2, (0xFF ^ 0xF0) / 2, 0xFF ^ (0xF0 / 2);
722
0xFF ^ 0xF0 / 2 (0xFF ^ 0xF0) / 2 0xFF ^ (0xF0 / 2)
724
select 0xF2 / 2 ^ 0xF0, (0xF2 / 2) ^ 0xF0, 0xF2 / (2 ^ 0xF0);
725
0xF2 / 2 ^ 0xF0 (0xF2 / 2) ^ 0xF0 0xF2 / (2 ^ 0xF0)
727
Testing that ^ has precedence over %
728
select 0xFF ^ 0xF0 % 0x20, (0xFF ^ 0xF0) % 0x20, 0xFF ^ (0xF0 % 0x20);
729
0xFF ^ 0xF0 % 0x20 (0xFF ^ 0xF0) % 0x20 0xFF ^ (0xF0 % 0x20)
731
select 0xFF % 0x20 ^ 0xF0, (0xFF % 0x20) ^ 0xF0, 0xFF % (0x20 ^ 0xF0);
732
0xFF % 0x20 ^ 0xF0 (0xFF % 0x20) ^ 0xF0 0xFF % (0x20 ^ 0xF0)
734
Testing that ^ has precedence over DIV
735
select 0xFF ^ 0xF0 DIV 2, (0xFF ^ 0xF0) DIV 2, 0xFF ^ (0xF0 DIV 2);
736
0xFF ^ 0xF0 DIV 2 (0xFF ^ 0xF0) DIV 2 0xFF ^ (0xF0 DIV 2)
738
select 0xF2 DIV 2 ^ 0xF0, (0xF2 DIV 2) ^ 0xF0, 0xF2 DIV (2 ^ 0xF0);
739
0xF2 DIV 2 ^ 0xF0 (0xF2 DIV 2) ^ 0xF0 0xF2 DIV (2 ^ 0xF0)
741
Testing that ^ has precedence over MOD
742
select 0xFF ^ 0xF0 MOD 0x20, (0xFF ^ 0xF0) MOD 0x20, 0xFF ^ (0xF0 MOD 0x20);
743
0xFF ^ 0xF0 MOD 0x20 (0xFF ^ 0xF0) MOD 0x20 0xFF ^ (0xF0 MOD 0x20)
745
select 0xFF MOD 0x20 ^ 0xF0, (0xFF MOD 0x20) ^ 0xF0, 0xFF MOD (0x20 ^ 0xF0);
746
0xFF MOD 0x20 ^ 0xF0 (0xFF MOD 0x20) ^ 0xF0 0xFF MOD (0x20 ^ 0xF0)