亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++隱式轉(zhuǎn)換問題分析及解決辦法

 更新時間:2020年02月25日 09:25:17   作者:落星無塵_Will  
在本篇文章里小編給大家整理了關(guān)于C++隱式轉(zhuǎn)換問題分析及解決辦法,有需要的朋友們可以學(xué)習(xí)下。

我們先來看下實例代碼:

#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
  unsigned int a;
  int b = -1;
  while (cin >> a)
  {
    if (a > b)
    {
      cout << "a > b" << endl;
    }
    else if (a < b)
    {
      cout << "a < b" << endl;
    }
    else
    {
      cout << "a == b" << endl;
    }
    
  }
  return 0;
}

解釋:

如果算術(shù)運算或關(guān)系運算的運算對象有多種類型,需要轉(zhuǎn)換成同一種類型。

這個涉及到無符號類型的運算對象

如果某個運算符的運算對象不一致,這些運算對象將轉(zhuǎn)換成同一種類型。但是如果某個運算對象的類型是無符號類型,那么轉(zhuǎn)換的結(jié)果就要依賴機器中各個整數(shù)類型中各個整數(shù)類型的相對大小了。

像往常一樣,首先執(zhí)行整型提升。如果結(jié)果的類型匹配,無需進(jìn)行進(jìn)一步的轉(zhuǎn)換。如果兩個(提升后的)運算對象的類型要么都是帶符號的、要么都是無符號的,則小類型的運算對象轉(zhuǎn)換成較大的類型。

如果一個運算對象是無符號類型、另外一個運算對象是帶符號類型,而且其中的無符號類型不小于帶符號類型,那么帶符號的運算對象轉(zhuǎn)換成無符號的。如上面的程序中的unsigned int和int,則int類型的運算對象轉(zhuǎn)換成unsigned int類型。如果int型的值恰好為負(fù)值,則轉(zhuǎn)換為unsigned int的數(shù)值總數(shù)去模后的余數(shù)。也就造成了a < b的奇怪情況。

例如,8比特大小的unsigned char可以表示0至255區(qū)間內(nèi)的值,如果我們賦了一個區(qū)間以外的值,則實際的結(jié)果是該值對256取模后所得的余數(shù)。因此把-1賦給8比特大小的unsigned char所得的結(jié)果是255。

剩下的一種情況是帶符號類型大于無符號類型,此時轉(zhuǎn)換的結(jié)果依賴于機器,如果無符號類型的所有值都能存在在該帶符號類型中,則無符號類型的運算對象轉(zhuǎn)換成帶符號類型。如果不能,那么帶符號類型的運算對象轉(zhuǎn)換成無符號類型。

到此這篇關(guān)于C++隱式轉(zhuǎn)換問題分析及解決辦法的文章就介紹到這了,更多相關(guān)C++中發(fā)現(xiàn)的隱式轉(zhuǎn)換問題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言:利用指針編寫程序,用梯形法計算給定的定積分實例

    C語言:利用指針編寫程序,用梯形法計算給定的定積分實例

    今天小編就為大家分享一篇C語言:利用指針編寫程序,用梯形法計算給定的定積分實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Opencv檢測多個圓形(霍夫圓檢測,輪廓面積篩選)

    Opencv檢測多個圓形(霍夫圓檢測,輪廓面積篩選)

    本文主要介紹了Opencv檢測多個圓形(霍夫圓檢測,輪廓面積篩選),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • C++ push_back()函數(shù)使用詳解

    C++ push_back()函數(shù)使用詳解

    這篇文章主要介紹了C++ push_back()函數(shù)使用詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • 使用c語言輸出楊輝三角形的簡單方法

    使用c語言輸出楊輝三角形的簡單方法

    這篇文章主要給大家介紹了關(guān)于如何使用c語言輸出楊輝三角形的簡單方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • C語言 文件操作解析詳解及實例代碼

    C語言 文件操作解析詳解及實例代碼

    這篇文章主要介紹了C語言 文件操作解析詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • C++ Boost Optional示例超詳細(xì)講解

    C++ Boost Optional示例超詳細(xì)講解

    Boost是為C++語言標(biāo)準(zhǔn)庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標(biāo)準(zhǔn)庫的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開發(fā)引擎之一,是為C++語言標(biāo)準(zhǔn)庫提供擴展的一些C++程序庫的總稱
    2022-11-11
  • Microsoft?Visual?C++進(jìn)行調(diào)試的方法實現(xiàn)

    Microsoft?Visual?C++進(jìn)行調(diào)試的方法實現(xiàn)

    VS功能極其強大,使用極其便利,本文主要介紹了Microsoft?Visual?C++進(jìn)行調(diào)試的方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • 基于C++泛型編程職工管理系統(tǒng)

    基于C++泛型編程職工管理系統(tǒng)

    這篇文章主要介紹了基于C++泛型編程職工管理系統(tǒng),前面介紹到了C++的泛型編程,并實現(xiàn)了萬能容器,不過那使用的是數(shù)組,今天呢咱帶大家實踐一下使用泛型技術(shù),結(jié)合單鏈表實現(xiàn)一個職工管理系統(tǒng),需要的朋友可以參考一下
    2022-02-02
  • Qt使用流處理XML文件的示例代碼

    Qt使用流處理XML文件的示例代碼

    XML(eXtensible?Markup?Language)是一種通用的文本格式,被廣泛運用于數(shù)據(jù)交換和數(shù)據(jù)存儲。本文主要來和大家聊聊如何使用?Qt?處理?XML?格式的文檔,需要的可以參考一下
    2023-02-02
  • C++實現(xiàn)查殼程序代碼實例

    C++實現(xiàn)查殼程序代碼實例

    這篇文章主要介紹了C++實現(xiàn)查殼程序代碼實例,有比較詳細(xì)的注釋,包含了對原理的說明,有一定的參考借鑒價值,需要的朋友可以參考下
    2014-10-10

最新評論