2014.12.26 整型,字符型,布尔型,浮点型

最小的存储单元是byte(字节),但是在C++中并没有这样的类型,只有char

有符号整型

    • short 
      • 16位 能表示范围  -2^15 到 2^15 – 1   = –32768 到 32767

 

    • int     
      • 32位  -2^31  到 -2^31 – 1

 

    • long
      • 可变的,如果在32位系统下 long = 32位 ,如果在64位系统下 long = 64

 

    • long long
      • 永远64位  -2^63  到 -2^63 – 1    

无符号整型 (不能表示负数了)

    • unsigned short  0 - 2^16 – 1   = 0 到 65535

 

获取数据类型尺寸

获取数据类型尺寸的结果是字节数

//结果为字节 byte

 cout « “size of (short) = ” « sizeof(short) «“ byte” « endl;

 cout « “size of (int) = ” « sizeof(int) « “ byte” « endl;

 cout « “size of (long) = ” « sizeof(long) « “ byte” « endl;

 cout « “size of (long long) = ” « sizeof(_Longlong) « “ byte” « endl;

  //还可以输出最大值和最小值 不用sizeof方法

 cout « LONG_MAX « endl;

 cout « ULLONG_MAX « endl;

 

整型溢出

大多数语言是允许整型溢出的

 

字符类型

c++里面是没有byte类型的,一个字符类型兼两个作用

    • 存储标准ascll码 0到127共128个字符
    • 当作有符号的字节类型

宽字符类型

    • 宽字符类型 wchar_t 以32位来存储字符
    • c++11里面新出的两个宽字符类型 char16_t (16位) char32_t(32位)
wchar_t c1 = L'中'; //前面加L
 char16_t c2 = L'中';
 char32_t c3 = L'中';
宽字节的输入输出
wcout << "c1 = "<
 
   
 
   
    
  
    
  //输出是字符 这边不一定输出的是"中"字,因为wcout指的是宽字节不一定是unicode

 
   
 
   
  wcout << L"" << endl;//这里标明了L 一定是输出"中"字 
  cout << "c1的编码是 : " << c1 << endl;//输出的是十进制编码是20013  转成十六进制是4E2D
 
 cout << "\u4e2d" << endl;//通过unicode编码输出字符 这边输出的肯定是"中"字 \u代表了unicode

布尔类型

bool flag1 = true;

bool flag2 = false;

 

 flag1 = 100;//布尔类型可以赋值整型 非0的为真 0为假
 

浮点类型

    • float 单精度 占用4byte

 

    • double 双精度 占用8byte

 

    • long double 长双精度占用16byte
科学计数法
float val1 = 12.34;
 double val2 = 12.56;
 //如果数字比较大的时候可以用科学计数法 比如12300000后面有5个0那么多
 //科学计数法 1尾数 2e/E 3指数
 double val3 = 1.23E7;

  float最大能表示指数为  +38 – 37  

double +308 –307

你可能感兴趣的:(2014.12.26 整型,字符型,布尔型,浮点型)