예제 #1
0
        public void TestUInt32()
        {
            var    b     = sizeof(UInt32) * 8 - 1;
            var    start = unchecked ((UInt32)(UInt32)1 << b);
            UInt32 v     = start;

            for (var i = 0; i < (sizeof(UInt32) * 8) - 1; i++)
            {
                v = v.RorCopy();
                var a = (UInt32)((UInt32)1 << (b - 1 - i));
                _output?.WriteLine(Convert.ToString(a, 2).PadLeft(32, '0') + " == " + Convert.ToString(v, 2).PadLeft(32, '0'));
                Assert.Equal(a, v);
            }

            v = v.RorCopy();
            _output?.WriteLine(Convert.ToString(start, 2).PadLeft(32, '0') + " == " + Convert.ToString((UInt32)((UInt32)v), 2).PadLeft(32, '0'));
            Assert.Equal((UInt32)start, (UInt32)(UInt32)v);
        }
예제 #2
0
 public void TestUInt32()
 {
     for (var i = 0; i < (sizeof(UInt32) * 8); i++)
     {
         var    b = sizeof(UInt32) * 8 - 1;
         UInt32 v = unchecked ((UInt32)(UInt32)1 << b);
         v = v.RorCopy(i);
         var a = (UInt32)((UInt32)1 << (b - i));
         _output?.WriteLine(Convert.ToString(a, 2).PadLeft(32, '0') + " == " + Convert.ToString(v, 2).PadLeft(32, '0'));
         Assert.Equal(a, v);
     }
 }