Fork me on GitHub

C++基本类型

基本类型介绍

01

  • int:在64位32位操作系统中都是4位
  • 指针:64位正好8个字节,32位是四个字节
  • wchar_t: 宽字符类型,可以表示char无法表示的范围。
wchar_t bob=L'P';
wcout<<L"tall"
  • char16_t,char32_t: c++11新特性,都是无符号,长度分别为16和32, 可以用字符表示,也可以分别用\u 和 \U表示
char16_t ch1=u'q';
char32_t ch2=U'\U0000222B';
  • 浮点数:+5.37E+16, 其中E可以为e。float和double的精度分别为7位和16位,即如下:
#include<iostream>
using namespace std;
int main()
{
    cout.setf(ios_base::fixed, ios_base::floatfield);
    float tub=10.0/3.0;
    double mint = 10.0/3.0;
    const float million = 1.0e6;
    cout<<"tub = "<<tub;
    cout<<", a million tubs = "<<million * tub;
    cout<<",\n and ten million tubs = ";
    cout<<10 * million * tub<<endl;
    cout<<"mint = "<<mint<<"and a million mints = ";
    cout<<million * mint<<endl;
    
    float a = 2.34E+22f;
    float b = a + 1.0f;
    cout<<"a = "<<a<<endl;
    cout<<"b - a = "<<b - a<<endl;
    return 0;
}

//结果:
tub = 3.333333, a million tubs = 3333333.250000,
 and ten million tubs = 33333332.000000
mint = 3.333333and a million mints = 3333333.333333
a = 23400001102275227418624.000000
b - a = 0.000000
  • 在float的第七位之后,就失效了,所以b-a=0

进制表示

cout默认是十进制,用dec、hex和oct分别表示十进制,十六进制和八进制的表示。

#include<iostream>
using namespace std;
int main()
{
    cout<<"八进制(032):"<<032<<endl;
    cout<<"十六进制(0x32):"<<0x32<<endl;
    cout<<"十进制(32):"<<32<<endl;
    int a=42;
    cout<<"a: "<<a<<endl;
    cout<<dec;
    cout<<"a:"<<a<<endl;
    cout<<hex;
    cout<<"a: "<<a<<endl;
    cout<<oct;
    cout<<"a: "<<a<<endl;
    return 0;
}
结果如下:
八进制(032):26
十六进制(0x32):50
十进制(32):32
a: 42
a:42
a: 2a
a: 52
posted @ 2020-07-26 22:12  wangzi199  阅读(291)  评论(0编辑  收藏  举报