/*
*/# include
int main()
else
if (x<=
1.0)
x *=
2.0; }
}else
x /=
2.0; }
}x -=
1.0;
//這樣的話系統預設有乙個1,因此只需要儲存後面的0.25(1就不需要儲存了),0.25用二進位制表示是0.01,再去掉(0.)就成為01。
for (i=
9; i<
32; ++i)
else }
if(e>
0)
//如果指數為0,則用01111 1111表示(即10進製的127,在此基礎上加或減),比如1用1000 0000表示,-1用0111 1110表示。依此類推。
else
for (i=
8; i>
1; --i)
printf(
"s*** ***x xmmm mmmm mmmm mmmm mmmm mmmm\n
");
//s表示符號位,x表示階數,m表示尾數
for (i=
0; i<
32; ++i)
} printf(
"\n");
return0;
} /*在vc++6.0中的輸出結果為:
————————————
輸入浮點數:
2.0s*** ***x xmmm mmmm mmmm mmmm mmmm mmmm
0100 0000 0000 0000 0000 0000 0000 0000
press any key to continue
輸入浮點數:
-2.0
s*** ***x xmmm mmmm mmmm mmmm mmmm mmmm
1100 0000 0000 0000 0000 0000 0000 0000
press any key to continue
輸入浮點數:
1s*** ***x xmmm mmmm mmmm mmmm mmmm mmmm
0011 1111 1000 0000 0000 0000 0000 0000
press any key to continue
輸入浮點數:
0.75
s*** ***x xmmm mmmm mmmm mmmm mmmm mmmm
0011 1111 0100 0000 0000 0000 0000 0000
press any key to continue
輸入浮點數:
2.5s*** ***x xmmm mmmm mmmm mmmm mmmm mmmm
0100 0000 0010 0000 0000 0000 0000 0000
press any key to continue
輸入浮點數:
0.1s*** ***x xmmm mmmm mmmm mmmm mmmm mmmm
0011 1101 1100 1100 1100 1100 1100 1101
press any key to continue
輸入浮點數:
0s*** ***x xmmm mmmm mmmm mmmm mmmm mmmm
0000 0000 -1000 0000 0000 0000 0000 0000
press any key to continue
————————————
*/
資料在記憶體中的儲存
身為乙個天天處理資料的人,不得不說資料在記憶體中的儲存是必須要知道的問題。首先,資料在記憶體中的儲存涉及到作用域,儲存位置等方面的問題。根據資料的作用域,可將資料劃分為區域性變數和全域性變數 區域性變數的作用域為從定義開始到函式執行結束 全域性變數的作用域從程式開始到程式結束。計算機的記憶體分配可以...
變數在記憶體中的儲存
c 中變數在記憶體中的儲存 一 記憶體大致可以分為三部分 區 堆疊區 靜態資料段。c和c 中有全域性變數,靜態變數以及區域性變數等幾類。全域性變數和靜態變數是在編譯的時候就已經分配好在資料段,也就是說在執行main函式之前就已經分配好了位址,如果定義的時候已經初始化,那麼就存放初始化的值,如果沒有初...
資料在記憶體中的儲存
大端,把乙個數字高位位元組序的內容儲存到低位址,低位位元組序內容儲存到高位址處 小端,把乙個數字高位位元組序的內容儲存到高位址,低位位元組序內容儲存到低位址處 判斷乙個機器是大端還是小端?指標判斷 int checksys 聯合體 共用體 union un int main 這裡首先需要知道的是,例...