~13 is -14 !13 is 0 13 & 6 is 4 13 && 6 is 1 13 | 6 is 15 13 || 6 is 1 13 ^ 6 is 11 13 > 6 is 1 13 >> 6 is 0 13 / 6 is 2 13 == 013 is 0 0 && 13467/3 == 4489 is 0 -31 is 100001 14 is 001110 36 is out-of-range -3 is 111101 4.0 is 01000000 -3.5 is 11001000 7.7 is 01111011 Why is it impossible to store the exact value of 235.001 as a C float (32-bit IEEE 754)? Because 0.001 (decimal) can't be represented as an exact binary fraction. Or, as a few people answered -- because 0.001 can't be the sum of negative powers of 2. Why is it impossible to store the exact value of (1e235f) as a C float (32-bit IEEE 754)? Since 1e235 is an integer, it can be stored in binary; so it must be the that 32-bit IEEE 754 can't store an exponent that large. Another common answer: Because the C float and the Java float are represented the same way and Prof. X said in CSCI 181/182/201 that Java floats can't be bigger than something like 1e40.