public void Test_HighestOneBit_Int64() { assertEquals(0x08L, BitOperation.HighestOneBit(0x0AL)); assertEquals(0x08L, BitOperation.HighestOneBit(0x0BL)); assertEquals(0x08L, BitOperation.HighestOneBit(0x0CL)); assertEquals(0x08L, BitOperation.HighestOneBit(0x0FL)); assertEquals(0x80L, BitOperation.HighestOneBit(0xFFL)); assertEquals(0x080000L, BitOperation.HighestOneBit(0x0F1234L)); assertEquals(0x800000L, BitOperation.HighestOneBit(0xFF9977L)); assertEquals(unchecked ((long)0x8000000000000000L), BitOperation.HighestOneBit(unchecked ((long)0xFFFFFFFFFFFFFFFFL))); assertEquals(0L, BitOperation.HighestOneBit(0L)); assertEquals(1L, BitOperation.HighestOneBit(1L)); assertEquals(unchecked ((long)0x8000000000000000L), BitOperation.HighestOneBit(-1L)); }
public void Test_HighestOneBit_Int32() { assertEquals(0x08, BitOperation.HighestOneBit(0x0A)); assertEquals(0x08, BitOperation.HighestOneBit(0x0B)); assertEquals(0x08, BitOperation.HighestOneBit(0x0C)); assertEquals(0x08, BitOperation.HighestOneBit(0x0F)); assertEquals(0x80, BitOperation.HighestOneBit(0xFF)); assertEquals(0x080000, BitOperation.HighestOneBit(0x0F1234)); assertEquals(0x800000, BitOperation.HighestOneBit(0xFF9977)); assertEquals(unchecked ((int)0x80000000), BitOperation.HighestOneBit(unchecked ((int)0xFFFFFFFF))); assertEquals(0, BitOperation.HighestOneBit(0)); assertEquals(1, BitOperation.HighestOneBit(1)); assertEquals(unchecked ((int)0x80000000), BitOperation.HighestOneBit(-1)); }