首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

C++數值數據類型全解析:從整數到浮點數的存儲與精度

     編輯:C++ 入門

C++數值數據類型全解析:從整數到浮點數的存儲與精度

C++提供豐富的數值類型對應現實世界數字:整數(公交路線216)、浮點數(西紅柿3.5元/斤)。理解其存儲大小、取值範圍、精度特性至關重要。

3.3.1 整型數值類型

類型說明符位數典型範圍(32位)用途
基本型int32-2,147,483,648 ~ 2,147,483,647最常用、CPU原生、速度最快
短整型short16-32,768 ~ 32,767節省內存,速度稍慢
長整型long32/6432位同int;64位±9.22e18平台相關最大整型
長長整型long long64±9,223,372,036,854,775,807極大整數、天文計算

符號修飾

  • signed(默認):最高位為符號位
  • unsigned:無符號位,正數範圍擴大2倍(0 ~ 4,294,967,295 for 32位)
  • 適用場景:明確不會出現負數時用unsigned

sizeof運算符:動態獲取類型大小

避免硬編碼魔數,保證可移植性:

int res[1024];
memset(res, 0, sizeof(res));  // 自動計算字節數

struct Human { char cName[3]; int nAge; };  // 因對齊佔8字節
cout << sizeof(Human) << endl;  // 輸出8
cout << sizeof(huZengmei) << endl;  // 同8

3.3.2 浮點型數值類型

類型說明符位數有效位數範圍用途
單精度float326-7±3.4e38日常小數、節省內存
雙精度double6415-16±1.7e308高精度、科學計算首選
長雙精度long double9618-19±1.2e4932極高精度、特殊科學計算

為什麼叫「浮點」數?

採用科學記數法存儲:有效數字 × 基數^指數。小數點位置「浮動」,不固定。例:
100000000000.0 → 1.0 × 10^11
0.000000000001 → 1.0 × 10^-12
僅存有效數字與指數,節省空間並統一表示極大極小值。

C++11隨機數生成

#include <random>
#include <iostream>
using namespace std;

int main() {
    default_random_engine reng;
    uniform_int_distribution<int> uni_dist(0, 25);  // 均勻分布
    random_device rnd_device;
    reng.seed(rnd_device());  // 設置種子避免偽隨機重複
    
    const int n = 4;
    char code[n];
    cout << "請輸入驗證碼:" << endl;
    for (int i = 0; i < n; ++i) {
        code[i] = 'A' + uni_dist(reng);
        cout << code[i];
    }
    // ... 驗證邏輯
}

關鍵點

  • 引擎default_random_engine + 分布uniform_int_distribution
  • random_device提供真隨機種子
  • 分布對象可作函數調用:uni_dist(reng)
  • 利用ASCII字母連續性生成驗證碼

掌握數值類型特性與隨機數生成,是C++程序設計處理現實數據的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved