Esempio n. 1
0
        public void Test_BitCounts()
        {
            UInt16 chNumber = 4; // 100b

            Assert.AreEqual(4, BaseClass.LeastBitOnly(chNumber));
            Assert.AreEqual(0, BaseClass.ResetLeastBit(chNumber));
            Assert.AreEqual((uint)1, BaseClass.BitCount(chNumber));
            Assert.AreEqual((uint)1, BaseClass.BitCount2(chNumber));

            chNumber = 6; //  110b
            Assert.AreEqual(2, BaseClass.LeastBitOnly(chNumber));
            Assert.AreEqual(4, BaseClass.ResetLeastBit(chNumber));
            Assert.AreEqual((uint)2, BaseClass.BitCount(chNumber));
            Assert.AreEqual((uint)2, BaseClass.BitCount2(chNumber));

            chNumber = 7; //  111b
            Assert.AreEqual(1, BaseClass.LeastBitOnly(chNumber));
            Assert.AreEqual(6, BaseClass.ResetLeastBit(chNumber));
            Assert.AreEqual((uint)3, BaseClass.BitCount(chNumber));
            Assert.AreEqual((uint)3, BaseClass.BitCount2(chNumber));

            chNumber = 4 + 16 + 64; // 1010100
            Assert.AreEqual(4, BaseClass.LeastBitOnly(chNumber));
            Assert.AreEqual(80, BaseClass.ResetLeastBit(chNumber));
            Assert.AreEqual((uint)3, BaseClass.BitCount(chNumber));
            Assert.AreEqual((uint)3, BaseClass.BitCount2(chNumber));

            int n = chNumber;

            n = n ^ 4;
        }