Defines interface of flt32.c functions (do not modify)
More...
Go to the source code of this file.
This file defines the interface to a C file flt32.c that you will complete. You will learn how to do floating point arithmatic without using any float
variables. Rather you will perform the operations by using the sign, exponent, and digit fields as defined in the IEEE floating Point Standard.
Whenever flt32
" is used, the value is an integer in the IEEE floating point 32 bit standard.
Absolute value of the argument. This can be done with a simple bit manipulation operation. No conditionals are required.
- Parameters
-
x | the integer containing a IEEE floating point value |
- Returns
- the absolute value of the parameter
- Todo:
- Implement in flt32.c based on documentation contained in flt32.h
Add two floating point values
- Parameters
-
x | an integer containing a IEEE floating point value |
y | an integer containing a IEEE floating point value |
- Returns
- x + y. Your code needs to account for a value of 0.0, but no other special cases (e.g. infinities)
- Todo:
- Implement in flt32.c based on documentation contained in flt32.h
void flt32_get_all |
( |
flt32 |
x, |
|
|
int * |
sign, |
|
|
int * |
exp, |
|
|
int * |
val |
|
) |
| |
Get the sign, exponent, and value in a single call. You will use the
- Parameters
-
x | the integer containing a IEEE floating point value |
sign | pointer to location where sign will be stored |
exp | pointer to location where exponent will be stored |
val | pointer to location where value will be stored C pointers to return values. |
- Todo:
- Implement in flt32.c based on documentation contained in flt32.h
int flt32_get_exp |
( |
flt32 |
x | ) |
|
Extract the exponent of the argument
- Parameters
-
x | the integer containing a IEEE floating point value |
- Returns
- the biased exponent of the argument
- Todo:
- Implement in flt32.c based on documentation contained in flt32.h
int flt32_get_sign |
( |
flt32 |
x | ) |
|
Extract the sign of the argument
- Parameters
-
x | the integer containing a IEEE floating point value |
- Returns
- 0 if the value is 0 or positive, 1 if it is negative
- Todo:
- Implement in flt32.c based on documentation contained in flt32.h
int flt32_get_val |
( |
flt32 |
x | ) |
|
Extract the digits of the argument
- Parameters
-
x | the integer containing a IEEE floating point value |
- Returns
- the 24 bits representing the value (includes the implicit 1)
- Todo:
- Implement in flt32.c based on documentation contained in flt32.h
int flt32_left_most_1 |
( |
int |
bits | ) |
|
Extract the position of the left most 1 in the argument's bits
- Parameters
-
- Returns
- -1 if the value is 0, otherwise the position (0 to 31) of the left most 1 bit.
- Todo:
- Implement in flt32.c based on documentation contained in flt32.h
Negate the argument. This can be done with a simple bit manipulation function. No conditionals are required.
- Parameters
-
x | the integer containing a IEEE floating point value |
- Returns
- the negation of the value
- Todo:
- Implement in flt32.c based on documentation contained in flt32.h
Subtract to floating point values
- Parameters
-
x | an integer containing a IEEE floating point value |
y | an integer containing a IEEE floating point value |
- Returns
- x - y. Your code needs to account for a value of 0.0, but no other special cases (e.g. infinities)
- Todo:
- Implement in flt32.c based on documentation contained in flt32.h