Hello Hugo,

Done some experiments with the indivudual
bits in Lunix, and would be very surprised
if it is not handled the same under Plan 9,
given the same hardware architecture.

The exponent is stored in base 2, but What
might be a bit confusing, is that it is not
stored using two's complement, but rather
using a bias. If you have an exponent of 8
bits (in a 32-bit IEEE float) an exponent of
zero is represented by '10000000' or 127.
Simply add the desired exponent, whether pos
or neg. -1 will be 126, +1 will be 128.

This link explains the whole thing in more detail:
http://steve.hollasch.net/cgindex/coding/ieeefloat.html

/jonas

<-----Ursprungligt Meddelande----->
  From: hugo rivera [uair00@gmail.com]
Sent: 20/5/2009 11:50:51 AM
To: 9fans@9fans.net
Subject: [9fans] plan 9 floating point representation 

Hi,
I am learning a bit about floating point representation and I am
wondering about how plan 9 does this.
According to IEEE 754 (I think) the convention used by C for single
precision floating point numbers is to use 24 of the 32 bits available
for the significand and 8 bits for the exponent. It seems to me that
plan 9 follows this convention but I am still kind of puzzled about
the base of the exponent. I've been experimenting (on a 386) a while
and it looks like a base 4 to me, which is kind of strange, since I
was expecting a base 2 or 10. I think I got something wrong, but I
would appreciate if someone can explain this to me to have a better
idea of how this works. It looks to me that this stuff is very machine
dependent (or language?), is it?
The point of all this is to classify raw data (4 byte length)
according to their magnitude, I don't really care about the
significant. This is just an exercise for me, since there are other
easier ways to do it.

Saludos
--
Hugo

.

_______________________________________________________________
Eniro Supers�k - �r vad det heter