最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++有符號和無符號之間的轉換問題

 更新時間:2021年07月07日 09:16:48   作者:Cdf(人名)  
在開發(fā)中經常會遇到有符號和無符號之間的轉換問題,如果不清楚問題根源,很難解決bug,今天小編通過本文給大家分享c++有符號無符號轉換問題,需要的朋友參考下

先來看一個程序:

#include<iostream>
 
int main()
{
    unsigned a=5;
    int b=-10;
    std::cout<<b+b<<std::endl;//正常輸出
    std::cout<<a+b<<std::endl;
 
    return 0;
}

打?。?20
4294967291

-20正常打印我們都知道,但當一個有符號和一個無符號之間的數進行相加減會發(fā)生什么呢?

是這樣的:a+b,首先把負數轉換為無符號數,然后在進行運算。

b轉換為無符號數就是對b取模,2^32+b,結果為4294967286。

再看:

#include<iostream>
 
int main()
{
      unsigned a=10,b=5;
      std::cout<<b-a<<std::endl;
 
      return 0;
}

打?。?294967291

其過程是對運算后的結果-5取模

循環(huán)中的發(fā)現:

#include<iostream>
 
int main()
{
     unsigned u=5;
     while(u>=0)
     {
          --u;
          std::cout<<u<<std::endl;
     }
 
     return 0;
 
}

運行結果將是無限打印,原因是:當u=0時,仍能進去循環(huán),然后u=-1了,由于u的類型是unsigned則被取模轉換了,則u總是大于0的,所以是無限循環(huán)。

此時應將while里面的條件改成:u>0,當u=0時不能進去循環(huán),u不是小于0也就沒有類型轉換,則循環(huán)能終止。

到此這篇關于C++有符號和無符號之間的轉換的文章就介紹到這了,更多相關c++有符號無符號轉換內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Qt使用QCamera實現切換相機,分辨率和圖像捕獲功能

    Qt使用QCamera實現切換相機,分辨率和圖像捕獲功能

    這篇文章主要為大家介紹了如何利用Qt中的相機類QCamera,取景器類QCameraViewfinder,圖像捕獲類QCameraImageCapture實現切換相機、分辨率和圖像捕獲功能,需要的可以了解一下
    2023-04-04
  • C++開發(fā)protobuf動態(tài)解析工具

    C++開發(fā)protobuf動態(tài)解析工具

    這篇文章主要為大家介紹了C++開發(fā)protobuf動態(tài)解析工具實現示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • 詳解C++ 中的三種繼承方式

    詳解C++ 中的三種繼承方式

    這篇文章主要介紹了詳解C++ 中的三種繼承方式,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下
    2021-03-03
  • C++基礎入門之運算符

    C++基礎入門之運算符

    下面小編就為大家?guī)硪黄P于C++運算符基礎的文章。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-11-11
  • Visual Studio Code (vscode) 配置 C / C++ 環(huán)境的流程

    Visual Studio Code (vscode) 配置 C / C++ 環(huán)境的流程

    這篇文章主要介紹了Visual Studio Code (vscode) 配置 C / C++ 環(huán)境的流程,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • C/C++實現Windows注冊表的基本操作

    C/C++實現Windows注冊表的基本操作

    Windows注冊表(Registry)是Windows操作系統(tǒng)中用于存儲系統(tǒng)配置信息、用戶設置和應用程序數據的一個集中式數據庫,本文主要為大家介紹了C++對注冊表的基本操作,感興趣的小伙伴可以了解下
    2023-11-11
  • Dashboard Interface 應用實現操作

    Dashboard Interface 應用實現操作

    Dashboard Server Remote Control Interface是一個關鍵的功能,它為用戶提供了通過TCP/IP協(xié)議遠程控制機器人的能力,執(zhí)行包括開關機、加載程序、檢查機器人狀態(tài)以及設置機器人操作模式等多種操作,本文介紹Dashboard Interface 應用操作,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • c語言之char*和unsigned?char*的區(qū)別及說明

    c語言之char*和unsigned?char*的區(qū)別及說明

    這篇文章主要介紹了c語言之char*和unsigned?char*的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C語言中實現KMP算法的實例講解

    C語言中實現KMP算法的實例講解

    KMP算法即字符串匹配算法,C語言中KMP可以避免指針回溯從而達到高效,接下來就來總結一下C語言中實現KMP算法的實例講解
    2016-06-06
  • 利用c++寫一個簡單的推箱子小游戲

    利用c++寫一個簡單的推箱子小游戲

    推箱子想必是很多人童年時期的經典游戲,我們依舊能記得抱個老人機娛樂的場景,下面這篇文章主要給大家介紹了關于如何利用c++寫一個簡單的推箱子小游戲的相關資料,需要的朋友可以參考下
    2021-09-09

最新評論

武乡县| 漠河县| 千阳县| 新津县| 渝中区| 渝中区| 大悟县| 溧阳市| 临夏县| 沅陵县| 大宁县| 镇平县| 察雅县| 广饶县| 西昌市| 吉隆县| 本溪市| 邵武市| 香格里拉县| 山阳县| 香港| 阳城县| 营口市| 新巴尔虎左旗| 咸阳市| 定结县| 玛多县| 张掖市| 阳曲县| 阜城县| 锡林郭勒盟| 普格县| 晋州市| 文水县| 民县| 密云县| 宁晋县| 巴塘县| 漳州市| 怀来县| 无为县|