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

C++取余符號(hào)%的實(shí)現(xiàn)示例

 更新時(shí)間:2026年02月27日 15:45:48   作者:CSDN_RTKLIB  
本文主要介紹了C++取余符號(hào)%的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

c++的%是取余運(yùn)算符是嗎,如果做取余運(yùn)算正數(shù)負(fù)數(shù)都可以直接使用,如果是取模運(yùn)算負(fù)數(shù)時(shí)就要自己調(diào)整一下是吧

一、核心結(jié)論:C++的%是取余運(yùn)算符(而非數(shù)學(xué)上的模運(yùn)算符)

C++中的%運(yùn)算符實(shí)現(xiàn)的是取余運(yùn)算(商向取整),而非數(shù)學(xué)意義上的模運(yùn)算(商向負(fù)無窮取整)。這一點(diǎn)是理解后續(xù)問題的關(guān)鍵。

二、關(guān)于“正數(shù)/負(fù)數(shù)能否直接使用%”的說明

1. 正數(shù)場(chǎng)景:直接用,無任何問題

當(dāng)被除數(shù)a和除數(shù)b均為正整數(shù)時(shí),取余和模運(yùn)算的結(jié)果完全一致,%運(yùn)算符的結(jié)果就是你想要的(無論是取余還是模運(yùn)算)。
示例:

#include <iostream>
using namespace std;

int main() {
    cout << 7 % 3;  // 輸出1(取余/模運(yùn)算結(jié)果一致)
    cout << 9 % 6;  // 輸出3(取余/模運(yùn)算結(jié)果一致)
    return 0;
}

2. 負(fù)數(shù)場(chǎng)景:語法上可以直接用,但結(jié)果是取余(符號(hào)與被除數(shù)一致)

C++11及以后的標(biāo)準(zhǔn)明確規(guī)定:a % b的結(jié)果滿足**(a / b) * b + (a % b) = a,其中a / b向零取整**(截?cái)嘈?shù)部分)。因此,%的結(jié)果符號(hào)與**被除數(shù)a**一致。
示例:

#include <iostream>
using namespace std;

int main() {
    cout << -7 % 3;   // 輸出-1(被除數(shù)-7為負(fù),結(jié)果為負(fù))
    cout << 7 % -3;   // 輸出1(被除數(shù)7為正,結(jié)果為正)
    cout << -7 % -3;  // 輸出-1(被除數(shù)-7為負(fù),結(jié)果為負(fù))
    return 0;
}

這里的關(guān)鍵是:負(fù)數(shù)場(chǎng)景下%的結(jié)果是取余,而非模運(yùn)算。如果你的業(yè)務(wù)邏輯需要的是數(shù)學(xué)上的模運(yùn)算(結(jié)果與除數(shù)同符號(hào)),直接用%會(huì)得到不符合預(yù)期的結(jié)果(比如-7 % 3得到-1,但模運(yùn)算需要的是2)。

三、如果需要在C++中實(shí)現(xiàn)數(shù)學(xué)上的模運(yùn)算(負(fù)數(shù)需手動(dòng)調(diào)整)

若要得到模運(yùn)算的結(jié)果(結(jié)果與除數(shù)同符號(hào),商向負(fù)無窮取整),需要對(duì)%的結(jié)果進(jìn)行手動(dòng)調(diào)整。核心思路是:將取余結(jié)果加上除數(shù)的絕對(duì)值,再取一次余,確保結(jié)果落在[0, |b|)范圍內(nèi)

1. 通用調(diào)整公式

模運(yùn)算結(jié)果 = (a % b + b) % b

這個(gè)公式對(duì)正數(shù)、負(fù)數(shù)、除數(shù)正負(fù)都適用,能穩(wěn)定得到數(shù)學(xué)上的模運(yùn)算結(jié)果。

2. 代碼實(shí)現(xiàn)(封裝成模運(yùn)算函數(shù))

#include <iostream>
using namespace std;

// 實(shí)現(xiàn)數(shù)學(xué)上的模運(yùn)算(結(jié)果與除數(shù)同符號(hào))
int mod(int a, int b) {
    if (b == 0) {
        // 除數(shù)不能為0,可根據(jù)需求拋異常或終止程序
        cerr << "除數(shù)不能為0" << endl;
        exit(1);
    }
    return (a % b + b) % b;
}

int main() {
    cout << mod(-7, 3);   // 輸出2(模運(yùn)算:與除數(shù)3同符號(hào))
    cout << mod(7, -3);   // 輸出-2(模運(yùn)算:與除數(shù)-3同符號(hào))
    cout << mod(7, 3);    // 輸出1(正數(shù)場(chǎng)景與取余一致)
    cout << mod(-7, -3);  // 輸出-1(模運(yùn)算:與除數(shù)-3同符號(hào))
    return 0;
}

四、補(bǔ)充注意事項(xiàng)

  1. 除數(shù)不能為0:無論是%取余還是手動(dòng)實(shí)現(xiàn)的模運(yùn)算,除數(shù)b都不能為0,否則會(huì)觸發(fā)未定義行為(程序崩潰或異常)。
  2. 浮點(diǎn)數(shù)不支持%:C++的%運(yùn)算符僅適用于整數(shù)類型(int、long等),如果要對(duì)浮點(diǎn)數(shù)做類似運(yùn)算,需使用<cmath>頭文件中的fmod()函數(shù)(但浮點(diǎn)數(shù)的模運(yùn)算邏輯與整數(shù)不同)。

總結(jié)

  1. C++的%是取余運(yùn)算符(商向零取整),正數(shù)場(chǎng)景可直接用,負(fù)數(shù)場(chǎng)景語法上也能直接用,但結(jié)果是取余(符號(hào)與被除數(shù)一致);
  2. 若需要數(shù)學(xué)上的模運(yùn)算(結(jié)果與除數(shù)同符號(hào)),負(fù)數(shù)場(chǎng)景下需用(a % b + b) % b手動(dòng)調(diào)整結(jié)果;
  3. 無論取余還是模運(yùn)算,都要保證除數(shù)不為0。

到此這篇關(guān)于C++取余符號(hào)%的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)C++取余符號(hào)%內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言判斷一個(gè)數(shù)是否為素?cái)?shù)方法解析

    C語言判斷一個(gè)數(shù)是否為素?cái)?shù)方法解析

    這篇文章主要介紹了C語言判斷一個(gè)數(shù)是否為素?cái)?shù)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 實(shí)例講解C++編程中l(wèi)ambda表達(dá)式的使用

    實(shí)例講解C++編程中l(wèi)ambda表達(dá)式的使用

    這篇文章主要介紹了C++編程中l(wèi)ambda表達(dá)式的使用實(shí)例,lambda表達(dá)式特性的引入在C++11中可謂千呼萬喚始出來,非常重要,需要的朋友可以參考下
    2016-01-01
  • C++核心編程之類和對(duì)象詳解

    C++核心編程之類和對(duì)象詳解

    這篇文章主要介紹了C++編程進(jìn)階之類和對(duì)象用法等相關(guān)使用技巧,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-09-09
  • 深入解析C++ Data Member內(nèi)存布局

    深入解析C++ Data Member內(nèi)存布局

    本篇文章是對(duì)C++中的Data Member內(nèi)存布局進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-07-07
  • C語言中花式退出程序的方式總結(jié)

    C語言中花式退出程序的方式總結(jié)

    在本篇文章當(dāng)中主要給大家介紹C語言當(dāng)中一些不常用的特性,比如在main函數(shù)之前和之后設(shè)置我們想要執(zhí)行的函數(shù),以及各種花式退出程序的方式,需要的可以參考一下
    2022-10-10
  • C++二進(jìn)制翻轉(zhuǎn)實(shí)例分析

    C++二進(jìn)制翻轉(zhuǎn)實(shí)例分析

    這篇文章主要介紹了C++二進(jìn)制翻轉(zhuǎn),通過幾個(gè)實(shí)例分析二進(jìn)制翻轉(zhuǎn)算法的實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2014-09-09
  • C語言數(shù)據(jù)的存儲(chǔ)和取出詳細(xì)講解

    C語言數(shù)據(jù)的存儲(chǔ)和取出詳細(xì)講解

    這篇文章主要介紹了C語言數(shù)據(jù)的存儲(chǔ)和取出詳細(xì)講解,作者使用圖文代碼實(shí)例講解,有感興趣的同學(xué)可以學(xué)習(xí)研究下
    2021-02-02
  • C++多態(tài)虛析構(gòu)和純虛析構(gòu)的實(shí)現(xiàn)

    C++多態(tài)虛析構(gòu)和純虛析構(gòu)的實(shí)現(xiàn)

    本文主要介紹了C++多態(tài)虛析構(gòu)和純虛析構(gòu)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • C++實(shí)現(xiàn)教務(wù)管理系統(tǒng)

    C++實(shí)現(xiàn)教務(wù)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)教務(wù)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 在Qt中使用OpenGL繪制三角形指南

    在Qt中使用OpenGL繪制三角形指南

    在高性能渲染場(chǎng)景中,CPU資源常被過度消耗,導(dǎo)致界面卡頓,而OpenGL作為業(yè)界標(biāo)準(zhǔn)的圖形API,能通過GPU硬件加速顯著降低CPU負(fù)載,本文將以繪制三角形為例,教你如何通過Qt的QOpenGLWidget和QOpenGLFunctions實(shí)現(xiàn)跨平臺(tái)GPU渲染,感興趣的朋友一起看看吧
    2025-04-04

最新評(píng)論

沐川县| 蓬溪县| 宿州市| 嘉禾县| 玛纳斯县| 文登市| 玉林市| 喜德县| 琼海市| 娱乐| 深水埗区| 剑川县| 乐安县| 洪雅县| 马龙县| 宣城市| 瑞昌市| 竹北市| 阿图什市| 安泽县| 太谷县| 阜城县| 阳信县| 宁蒗| 凌海市| 东宁县| 翁源县| 万源市| 县级市| 德格县| 磐安县| 大渡口区| 敦化市| 饶平县| 夏邑县| 巴楚县| 双江| 濮阳县| 漠河县| 平凉市| 宣汉县|