| sign.c |
/*
* sign.c --- MSB が符号を表わすことの確認
*/
#include <stdio.h>
#include <math.h>
#include "bdsd.h"
int main()
{
double x;
bdsd s;
x = 1; double_to_bin_digits(x, s);
printf("x=%g\n", x); print_bdsd(s); printf("\n");
x *= -1; double_to_bin_digits(x, s);
printf("x=%g\n", x); print_bdsd(s); printf("\n");
x = 4.0 * atan(1.0); double_to_bin_digits(x, s);
printf("x=%g\n", x); print_bdsd(s); printf("\n");
x *= -1; double_to_bin_digits(x, s);
printf("x=%g\n", x); print_bdsd(s); printf("\n");
x = 0; double_to_bin_digits(x, s);
printf("x=%g\n", x); print_bdsd(s); printf("\n");
x *= -1; double_to_bin_digits(x, s);
printf("x=%g\n", x); print_bdsd(s); printf("\n");
return 0;
}
|
| sign 実行結果 |
takebe% ./sign x=1 0 01111111111 0000000000000000000000000000000000000000000000000000 x=-1 1 01111111111 0000000000000000000000000000000000000000000000000000 x=3.14159 0 10000000000 1001001000011111101101010100010001000010110100011000 x=-3.14159 1 10000000000 1001001000011111101101010100010001000010110100011000 x=0 0 00000000000 0000000000000000000000000000000000000000000000000000 x=0 1 00000000000 0000000000000000000000000000000000000000000000000000 takebe% |
先頭のビットが符号を表わしていること、
また確かに
にも二種類あることが分かる。
桂田 祐史