public function test_uint32_and() { $this->assertEquals(0.0, uint32_and(0.0, 0.0)); $this->assertEquals(0.0, uint32_and(0.0, 1.0)); $this->assertEquals(0.0, uint32_and(0.0, 2.0)); $this->assertEquals(0.0, uint32_and(0.0, 3.0)); $this->assertEquals(0.0, uint32_and(0.0, 4.0)); $this->assertEquals(0.0, uint32_and(0.0, 5.0)); $this->assertEquals(0.0, uint32_and(0.0, 6.0)); $this->assertEquals(0.0, uint32_and(1.0, 0.0)); $this->assertEquals(1.0, uint32_and(1.0, 1.0)); $this->assertEquals(0.0, uint32_and(1.0, 2.0)); $this->assertEquals(1.0, uint32_and(1.0, 3.0)); $this->assertEquals(0.0, uint32_and(1.0, 4.0)); $this->assertEquals(1.0, uint32_and(1.0, 5.0)); $this->assertEquals(0.0, uint32_and(1.0, 6.0)); $this->assertEquals(0.0, uint32_and(2.0, 0.0)); $this->assertEquals(0.0, uint32_and(2.0, 1.0)); $this->assertEquals(2.0, uint32_and(2.0, 2.0)); $this->assertEquals(2.0, uint32_and(2.0, 3.0)); $this->assertEquals(0.0, uint32_and(2.0, 4.0)); $this->assertEquals(0.0, uint32_and(2.0, 5.0)); $this->assertEquals(2.0, uint32_and(2.0, 6.0)); $this->assertEquals(0.0, uint32_and(3.0, 0.0)); $this->assertEquals(1.0, uint32_and(3.0, 1.0)); $this->assertEquals(2.0, uint32_and(3.0, 2.0)); $this->assertEquals(3.0, uint32_and(3.0, 3.0)); $this->assertEquals(0.0, uint32_and(3.0, 4.0)); $this->assertEquals(1.0, uint32_and(3.0, 5.0)); $this->assertEquals(2.0, uint32_and(3.0, 6.0)); $this->assertEquals(0.0, uint32_and(4.0, 0.0)); $this->assertEquals(0.0, uint32_and(4.0, 1.0)); $this->assertEquals(0.0, uint32_and(4.0, 2.0)); $this->assertEquals(0.0, uint32_and(4.0, 3.0)); $this->assertEquals(4.0, uint32_and(4.0, 4.0)); $this->assertEquals(4.0, uint32_and(4.0, 5.0)); $this->assertEquals(4.0, uint32_and(4.0, 6.0)); $this->assertEquals(0.0, uint32_and(5.0, 0.0)); $this->assertEquals(1.0, uint32_and(5.0, 1.0)); $this->assertEquals(0.0, uint32_and(5.0, 2.0)); $this->assertEquals(1.0, uint32_and(5.0, 3.0)); $this->assertEquals(4.0, uint32_and(5.0, 4.0)); $this->assertEquals(5.0, uint32_and(5.0, 5.0)); $this->assertEquals(4.0, uint32_and(5.0, 6.0)); $this->assertEquals(0.0, uint32_and(6.0, 0.0)); $this->assertEquals(0.0, uint32_and(6.0, 1.0)); $this->assertEquals(2.0, uint32_and(6.0, 2.0)); $this->assertEquals(2.0, uint32_and(6.0, 3.0)); $this->assertEquals(4.0, uint32_and(6.0, 4.0)); $this->assertEquals(4.0, uint32_and(6.0, 5.0)); $this->assertEquals(6.0, uint32_and(6.0, 6.0)); }
function uint32_hex($a) { return sprintf("%02s%02s%02s%02s", dechex(uint32_rsh(uint32_and($a, 0xff000000), 24)), dechex(uint32_rsh(uint32_and($a, 0xff0000), 16)), dechex(uint32_rsh(uint32_and($a, 0xff00), 8)), dechex(uint32_and($a, 0xff))); }