今天就接著來看浮點數的部分吧~
C++ 浮點數類別有以下幾種: float, double
沿用一下昨天的表:
類型名稱 | 位元組(byte) | 範圍 |
---|---|---|
float | 4 | 3.4E +/- 38 (7 digits) |
double | 8 | 1.7E +/- 308 (15 digits) |
C++的浮點數是使用IEEE 754,中文全稱 二進位浮點數算術標準。
下面就來簡單看一下到底有小數點的數值怎麼被表示在記憶體中。
IEEE 754 裡面有四種表示浮點數值的方式:
但ㄧ般的情境下,主要都是使用單精確度,所以以單精確度來看。
浮點數的表示: 浮點數 (Value) = 符號位 (Sign bit) 乘以 指數偏移值 (exponent bias) 乘以 分數值 (fraction)
符號位(sign bit): 用來判斷正負值,正數為 0,負數為 1
指數偏移值(exponent): 以單精確度的表示式來看,指數域是用 8 位元來表示,IEEE 754 標準規定的固定值為 [2 的 e - 1 次方 - 1] (e 為儲存指數的位元長度,故 e=8),所以在單精確度中固定偏移值就是 127(二進位為 1000 0000)。
分數值(fraction): 存放小數點以下的值(2 進位)
這邊用 12.5(10)來看 float 怎麼運作:
float | sign bit | exponent | fraction |
---|---|---|---|
12.5 | 0 | 1000 0010 | 100 1000 0000 0000 0000 0000 |
之前提到的 C++ 基本資料型態忘了還有空類型(Void),這邊就來簡單看看囉~
void 類型: 可以代表一種未知的類型(就是一種抽象的表達,物件概念中的抽象類別,之後會提到這部分)
void*: 無類型指針,有個這個指針的部分,後面會提到。
void 類型函數: 這邊就先簡單看一下 void 函數的部分,他會有以下兩種用處
#include <iostream>
using namespace std;
void empty(void) {
cout << "I am void";
}
int main()
{
empty();
}
註解主要是用來補充除了程式語言以外的內容,像是為什麼會有這段程式碼,在 C++中有兩種註解的方式
// 我是單行
/*
我是多行
*/
終於在今天把基本資料類型認識完了,明天要來認識一些基本運算子~