Remember B = 8b (one byte is 8 bits) G = 2^30 M = 2^20 k = 2^10 Problem 1 16G * 32 == (16*32)G = 512G 8M / 32 == (8*1024*k) / 32 = 8192k/32 = 256k log2(2G) = log2(2^31) = 31 Problem 2 8GB/16b = 8GB/2B = 4G 4M*32b/B = 4M*(32b/8b) = 4M*4 = 16M log2(4M) = log2(2^22) = 22 Problem 3 26 = 0b11010 --> 00011010.00000000 --> 0001101000000000 0.3 = 0b0.010011001100110011(0011)* =~ 00000000.01001101 [rounded] --> 000000001001101 000000001001100 --> 0.29687500 [0.0104 error] 000000001001101 --> 0.30078125 [0.0026 error] 0.111111111111111..... = 0b0.000111(000111)* =~ 00000000.00011100 [rounded] --> 0000000000011100 Problem 4 1111000011110000 = 11110000.11110000 = -16 + 15/16 = -15.0625 0000111100001111 = 00001111.00001111 = 15 + 15/256 = 15.05859375 0000100000000000 = 00001000.00000000 = 8 Problem 5 26.5 --> 11010.1 --> 1.10101 * 2^4 sign --> 0 exp = 127 + 4 = 131 --> 10000011 1.10101 --> 0 10000011 10101000000000000000000 --> 01000001110101000000000000000000 --> 0x41D40000 Problem 6 0x41540000 --> 0100 0001 0101 0100 0000 0000 0000 0000 --> 0 10000010 10101000000000000000000 --> + 130 1.101010 + 3 1. + 0.5 + 0.125 + 0.03125 1 * 8 * 1.65625 13.25 Yep.... by the change of one bit, it's half of 26.5