zextend: 1111 111100 cextend: 1111 1111000000000000000 16 1 0 15 0 0 19 8 16 1 0 15 0 0 19 8 rightshift start: 1111111111 000 rightshift 1: 0111111111 100 rightshift 2: 0011111111 110 rightshift 3: 0001111111 111 rightshift 2: 0011111111 110 rightshift 3: 0001111111 111 rightshift 10: 0000000000 111 rightshift 11: 0000000000 011 rightshift 12: 0000000000 001 rightshift 13: 0000000000 001 rightshift 14: 0000000000 001 rightshift 15: 0000000000 001 rightshift 31: 0000000000 001 rightshift 31: 0000000000 000 1100000100 00 0 = 1100000100 00 0 1100000110 11 0 = 1100000110 00 0 1100000111 01 1 = 1100000111 00 0 1111111111 11 1 = 1111111111 00 0 -1111111111 11 1 = -1111111111 00 0 0000000000 11 1 = 0000000000 00 0 -0000000000 11 1 = -0000000000 00 0 1100000100 00 0 = 1100000100 00 0 1100000100 10 0 = 1100000101 00 0 -1100000100 10 0 = -1100000100 00 0 1100000001 01 0 = 1100000010 00 0 1100000001 00 1 = 1100000010 00 0 1111111111 11 1 = 0000000000 00 0 -1111111111 11 1 = -1111111111 00 0 0000000000 11 1 = 0000000001 00 0 -0000000000 11 1 = -0000000000 00 0 1100000100 00 0 = 1100000100 00 0 1100000100 10 0 = 1100000100 00 0 -1100000100 10 0 = -1100000101 00 0 1111111111 11 1 = 1111111111 00 0 -1111111111 11 1 = -0000000000 00 0 0000000000 11 1 = 0000000000 00 0 -0000000000 11 1 = -0000000001 00 0 1100000100 00 0 = 1100000100 00 0 1100000000 11 0 = 1100000001 00 0 1100000000 01 0 = 1100000000 00 0 1100000000 11 1 = 1100000001 00 0 1100000000 00 1 = 1100000000 00 0 1100000000 10 0 = 1100000000 00 0 1100000001 10 0 = 1100000010 00 0 1111111111 11 1 = 0000000000 00 0 -1111111111 11 1 = -0000000000 00 0 0000000000 11 1 = 0000000001 00 0 -0000000000 11 1 = -0000000001 00 0 1100000100 00 0 = 1100000100 00 0 1100000000 11 0 = 1100000001 00 0 1100000000 01 0 = 1100000000 00 0 1100000000 11 1 = 1100000001 00 0 1100000000 00 1 = 1100000000 00 0 1100000000 10 0 = 1100000001 00 0 -1100000000 10 0 = -1100000001 00 0 1111111111 11 1 = 0000000000 00 0 -1111111111 11 1 = -0000000000 00 0 0000000000 11 1 = 0000000001 00 0 -0000000000 11 1 = -0000000001 00 0 1100000100 00 0 = 1100000100 00 0 1100000000 11 0 = 1100000001 00 0 1100000000 01 0 = 1100000000 00 0 1100000000 11 1 = 1100000001 00 0 1100000000 00 1 = 1100000000 00 0 1100000000 10 0 = 1100000000 00 0 -1100000000 10 0 = -1100000000 00 0 1111111111 11 1 = 0000000000 00 0 -1111111111 11 1 = -0000000000 00 0 0000000000 11 1 = 0000000001 00 0 -0000000000 11 1 = -0000000001 00 0 +0.0 = -0.0 = +2.0 = -2.0 = +3.0 = -3.0 = +2.3 = -2.3 = max normal = min normal = min pos normal = max neg normal = min pos denormal = max neg denormal = min pos denormal<<1 = max neg denormal<<1 = +0.0 = -0.0 = +2.0 = -2.0 = +3.0 = -3.0 = +2.3 = -2.3 = max normal = min normal = min pos normal = max neg normal = min pos denormal = max neg denormal = min pos denormal<<1 = max neg denormal<<1 = +0.0 = -0.0 = +2.0 = -2.0 = +3.0 = -3.0 = +2.3 = -2.3 = max normal = min normal = min pos normal = max neg normal = min pos denormal = max neg denormal = min pos denormal<<1 = max neg denormal<<1 = +0 = +1 = -1 = +2 = -2 = +maxint = -maxint = +32768 = -32768 = +0 = +1 = -1 = +2 = -2 = +65503 = -65503 = +2147483648 = -2147483648 = +0 = +1 = -1 = +2 = -2 = +65505 = -65505 = +4294967296 = -4294967296 = -2.3 < 2.3 = 1 2.3 < -2.3 = 0 2.3 < 4.3 = 1 4.3 < 2.3 = 0 2.2 < 2.3 = 1 2.3 < 2.2 = 0 2.3 < 2.3 = 0 -2.3 <= 2.3 = 1 2.3 <= -2.3 = 0 2.3 <= 4.3 = 1 4.3 <= 2.3 = 0 2.2 <= 2.3 = 1 2.3 <= 2.2 = 0 2.3 <= 2.3 = 1 -2.3 > 2.3 = 0 2.3 > -2.3 = 1 2.3 > 4.3 = 0 4.3 > 2.3 = 1 2.2 > 2.3 = 0 2.3 > 2.2 = 1 2.3 > 2.3 = 0 -2.3 >= 2.3 = 0 2.3 >= -2.3 = 1 2.3 >= 4.3 = 0 4.3 >= 2.3 = 1 2.2 >= 2.3 = 0 2.3 >= 2.2 = 1 2.3 >= 2.3 = 1 a = b = a < b = 1 a = b = compare(a,b) = 0 a = b = compare(b,a) = 2 a = b = compare(b,a) = 1 a = b = min(a,b) = min(b,a) = a = b = max(a,b) = max(b,a) = a = b = a < b = 1 a <= b = 1 a > b = 0 a >= b = 0 compare(a,b) = 0 compare(b,a) = 2 min(a,b) = min(b,a) = max(a,b) = max(b,a) = a = b = a < b = 0 a <= b = 1 a > b = 0 a >= b = 1 compare(a,b) = 1 compare(b,a) = 1 min(a,b) = min(b,a) = max(a,b) = max(b,a) = 0.9 = 0 (00000000) 1.0 = 1 (00000001) 33.99 = 33 (00000021) -5.9 = -5 (fffffffb) -0.9 = 0 (00000000) 0.9 = 0 (00000000) 1.0 = 1 (00000001) 33.99 = 33 (00000021) -5.9 = -5 (fffffffb) -0.9 = 0 (00000000) 0.9 = 0 (00000000) 1.0 = 1 (00000001) 33.99 = 33 (00000021) -5.9 = -5 (fffffffb) -0.9 = 0 (00000000) 0 = 1 = -1 = 2 = 33 = max = min = 0 = 1 = -1 = 2 = 33 = max = min = 0 = 1 = -1 = 2 = 33 = max = min = snan = +infinity = -infinity = 1.40e-45 = 0.4 = 0.999 = 1.999 = 123.456 = 100.001 = 99999.999 = 0.0002 = -1.999 = 0.000 = 1.000 = 2.000 = 2.000-1.000 = 45-15 =