コード例 #1
0
ファイル: Ror1Test.cs プロジェクト: tedd/Tedd.BitUtils
        public void TestUInt64()
        {
            var    b     = sizeof(UInt64) * 8 - 1;
            var    start = unchecked ((UInt64)(UInt64)1 << b);
            UInt64 v     = start;

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

            v.Ror();
            _output?.WriteLine(Convert.ToString((Int64)start, 2).PadLeft(64, '0') + " == " + Convert.ToString((Int64)((UInt64)v), 2).PadLeft(64, '0'));
            Assert.Equal((UInt64)start, (UInt64)(UInt64)v);
        }
コード例 #2
0
ファイル: RorNTest.cs プロジェクト: tedd/Tedd.BitUtils
 public void TestUInt64()
 {
     for (var i = 0; i < (sizeof(UInt64) * 8); i++)
     {
         var    b = sizeof(UInt64) * 8 - 1;
         UInt64 v = unchecked ((UInt64)(UInt64)1 << b);
         v.Ror(i);
         var a = (UInt64)((UInt64)1 << (b - i));
         _output?.WriteLine(Convert.ToString((Int64)a, 2).PadLeft(64, '0') + " == " + Convert.ToString((Int64)v, 2).PadLeft(64, '0'));
         Assert.Equal(a, v);
     }
 }