zoukankan      html  css  js  c++  java
  • c++中的数据类型转换

    一、在c++中的数据类型转换一般有以下几种情况:

    1、将一种算术类型的值赋给另一种算术类型的变量时,c++将对值进行转换

    2、表达式中包含不同的类型时,c++将对值进行转换

    3、将参数传递给函数时,c++将对值进行转换

    二、在进行数据类型转换的时候要注意几点:

    1、将小的数据类型转化为大的数据类型,不会出现问题,一般只是转化后所占用的字节更多了,但是要将大的数据类型转化为小的数据类型的话,就会造成数据的丢失。

    2、将较大的浮点数转化为较小的浮点数,如double转化为float ,这会造成精度(有效数位)降低,值可能超出目标类型的取值范围,在这种情况下,结果将是不确定的。

    3、将浮点类型转换为整型,这会造成小数部分丢失,原来的值可能超出目标类型的取值范围,在这种情况下,结果将是不确定的。

    4、当运算涉及到两种数据类型时,一般是较小的类型将被转换为较大的类型。

    三、强制类型转换:

    1、形式:

    a、(typeName)    value (C语言的写法)

    b、value   (typeName)  (c++的写法)

    c、static_cast<> 可以将值从一种数值类型转换为另外一种数据类型,格式为: static_cast<typeName> (value)  

    例如:

     1 #include <iostream>
     2 int main()
     3 {
     4     using namespace std;
     5     int auks ,bats , coots;
     6     auks=19.99+11.99;
     7     
     8     bats=(int)19.99+(int)11.99;
     9     coots=int(19.99)+int(11.99);
    10     cout<<"auks="<< auks <<",bats = "<< bats;
    11     cout<<",coots = "<<coots<<endl;
    12     
    13     char ch ='Z';
    14     cout<<"The code for " << ch << "is";
    15     cout<<int(ch)<<endl;
    16     cout<<"yes,the code is ";
    17     cout<<static_cast<int>(ch)<<endl;
    18     return 0;
    19 }

    结果如下:

    auks=31,bats = 30,coots = 30
    The code for Zis90
    yes,the code is 90

    四、总结:

    整型数据类型大小排序:  bool , char , signed  char,   unsigned char,  short  ,  unsigned short ,  int , unsigned int ,long , unsigned long , long long , unsigned long long

    浮点数排序大小:float  , double , long double

  • 相关阅读:
    测试rar/bz2/tar.gz/gz压缩文档完整性
    php中ajax调用出错的问题
    WIN32_LEAN_AND_MEAN宏
    Windows XP SP3下编译安装check-0.10.0
    Windows XP SP3下成功编译CUint2.1-3
    WebService客户端调用的几种方式
    Webservice 返回数据集 DataSet 及Android显示数据集LiveBindings
    REST 服务器调试 RESTDebugger.exe 和浏览器测试 webservice 调试工具
    delphi android路径 TPath 文件路径,文件管理 file path
    RESTClient 控件 从服务器获得数据集 REST
  • 原文地址:https://www.cnblogs.com/1121518wo/p/11210591.html
Copyright © 2011-2022 走看看