zoukankan      html  css  js  c++  java
  • 强制类型转换

    1. 整型类型的长度级别

    char  uchar  short  ushort  [ int  uint ]  long  ulong  longlong  ulonglong

    注:int和uint与具体的实现有关。

    2. 类型转换

    • 低转高:延拓,最高位填充;
    • 高转低:截断。

    3. 有符号数转无符号数

      直接使用强制类型转换并不能去掉符号。

    // Example program
    #include <iostream>
    #include <bitset>
    using namespace std;
    
    int main()
    {
        char c=-1;
        unsigned char uc=(unsigned char)c;
        cout<<bitset<8>(c)<<' '<<bitset<8>(uc)<<endl;
        return 0;
    }

      输出:11111111 11111111

    // Example program
    #include <iostream>
    #include <bitset>
    using namespace std;
    
    int main()
    {
        char c=-1;
        unsigned short us=(unsigned short)c;
        cout<<bitset<8>(c)<<' '<<bitset<16>(us)<<endl;
        return 0;
    }

      输出:11111111 1111111111111111

      使用C++的类型转换运算符:static_cast

    // Example program
    #include <iostream>
    #include <bitset>
    using namespace std;
    
    int main()
    {
        char c = -1;
        unsigned char uc = static_cast<unsigned char>(c);
        
        cout << bitset<8>(c) << ' ' << bitset<8>(uc) << endl;
        
        return 0;
    }

      输出:11111111 11111111

      解决办法:

    int a;
    unsigned int b = (unsigned int)(-a);
  • 相关阅读:
    mongodb实验
    hbase实验
    oracle数据库的安装
    3ds的fbi无线传输
    2018年春阅读计划---阅读笔记6
    2018年春阅读计划---阅读笔记5
    2018年春阅读计划---阅读笔记4
    php写一个简单的计算器
    2018年春阅读计划---阅读笔记3
    脚本之家的一个meta的帖子
  • 原文地址:https://www.cnblogs.com/jmliao/p/8543758.html
Copyright © 2011-2022 走看看