簡體   English   中英

C ++中'x%y!= 0'的力學

[英]Mechanics of 'x % y != 0' in C++

有人可以解釋一下C ++中x % y !=0的幕后機制嗎? 如果整數除法中沒有余數,則結果為0,如果有任何余數,則結果為1。 我發現這很有用,但是我想了解發生了什么,因為語法對我而言並不直觀。

我是在一個單獨的線程中發現的,我沒有評論權限:

C / C ++中整數除法的快速上限

謝謝。

(請原諒任何格式的偽造內容;這是我第一次來)

%是整數余數運算符。 例如:

  • 21 % 7 == 0
  • 22 % 7 == 1
  • 25 % 7 == 4
  • 27 % 7 == 6
  • 28 % 7 == 0

x % y != 0如果整數除法得出的余數為非零,則為true;否則為false。 x % y就是余數; x % y != 0測試該余數是否為非零。

(請注意, x % y != 0也可以寫為(x % y) != 0

考慮負操作數時,它有點復雜。

表達式的結果是一個布爾值(通過“不等於”的二進制運算符)。 因此,如果模量的結果為非零,則完整表達式的結果為1(真)。 如果模量的結果為零,則完整表達式的結果為0(假)

好吧,看來您的問題是模運算符(%)。 因此,該運算符的作用是在將兩個數相除后為您提供余數。

例如 5 % 2 = 1因為當我們用5/2進行整數除法時,我們得到2,但是顯然我們有1作為余數。 另一個示例是22%4 = 2,因為22/4 = 5,其余2個。

現在我們了解了這一點,我們可以清楚地看到,如果我們得到一個非零數字,則表達式x % y != 0將返回true,因此我們有兩個不相除的整數。 如果我們將其視為假,則我們將得到兩個確實相除的數字。 因此,實際上您會倒退,因為如果整數除法成功且沒有余數x % y == 0那么0 != 0將為false。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM