“Base 0.5” wouldn’t be much different from base 2; you just swap the stuff to the left of the units position with the stuff to the right. For example, thirteen in base 0.5 would be 1.011, instead of 1101 in binary, and four and one-eighth would be 1000.01 in base 0.5 instead of 100.001 in binary.
In general you can map “base x” back and forth with “base 1/x” this way; so base 0.25 is just base 4 backwards, base 0.2 is base 5 backwards, and so on. Other fractional bases are more problematic, since it’s not obvious what the digits should be.
Negative bases are also quite possible. For example in base -2, 101 is (-2)[sup]2[/sup]+1=5, 11010 is six, and 1010 is negative ten. In general you can write any positive or negative integer uniquely in base -n using the digits 0, 1, …, n-1.
And if you really want to abuse your brain, you can also use certain complex numbers for bases. For example, base -1+i, with digits 0 and 1, can be used to represent any Gaussian integer (that is, any complex number whose real and imaginary parts are both integers). One is 1, two is 1100, three is 1101, four is 111010000, negative 4 is 10000, i is 11, and so on. You can even do arithmetic in this base; just remember that 1+1=1100, and 111+11=0, and everything will work out.
Not every Gaussian integer works for a base; for example, base +1+i doesn’t work, at least not with the digits 0 and 1 (not every Gaussian integer can be expressed in this “base”). Another example which does work is base -3+i, if you use the digits 0, 1, …, 9.