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

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

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

前言

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

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

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

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

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

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

#include <iostream>
using namespace std;

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

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

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

#include <iostream>
using namespace std;

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

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

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

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

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

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

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

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

#include <iostream>
using namespace std;

// 實現(xiàn)數(shù)學(xué)上的模運算(結(jié)果與除數(shù)同符號)
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(模運算:與除數(shù)3同符號)
    cout << mod(7, -3);   // 輸出-2(模運算:與除數(shù)-3同符號)
    cout << mod(7, 3);    // 輸出1(正數(shù)場景與取余一致)
    cout << mod(-7, -3);  // 輸出-1(模運算:與除數(shù)-3同符號)
    return 0;
}

四、補充注意事項

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

總結(jié)

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

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

相關(guān)文章

  • C語言判斷一個數(shù)是否為素數(shù)方法解析

    C語言判斷一個數(shù)是否為素數(shù)方法解析

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

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

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

    C++核心編程之類和對象詳解

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論

牡丹江市| 怀远县| 金昌市| 涿鹿县| 延安市| 美姑县| 南汇区| 大埔县| 罗定市| 定远县| 扶绥县| 鹿邑县| 汶川县| 图木舒克市| 亚东县| 霞浦县| 盘山县| 漠河县| 绵阳市| 沭阳县| 财经| 萨嘎县| 望江县| 西和县| 桐梓县| 龙海市| 波密县| 松溪县| 陈巴尔虎旗| 邓州市| 射洪县| 渭南市| 凌源市| 开化县| 林西县| 台东市| 上虞市| 炎陵县| 洪雅县| 营山县| 应城市|