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);
  • 相关阅读:
    大数据学习——三大组件总结
    js获取当前时间的前一天/后一天
    Windows下主机名和IP映射设置
    大数据学习——HDFS的shell
    微服务化架构特征
    Spring cloud consul 相关前提知识
    Kubeadm 安装
    remove docker ce fully on centos7
    Jquery Gritter set position
    Toggle Checkboxes on/off
  • 原文地址:https://www.cnblogs.com/jmliao/p/8543758.html
Copyright © 2011-2022 走看看