-8%5=-3,8%-5=3。兩者的區別在哪里?麻煩詳細點。
uj5u.com熱心網友回復:
剛發給你了,無非就是%優先級高于-,%后的負數被當做正數處理了uj5u.com熱心網友回復:
為什么?負號(-)優先級高于%的,%優先級高于的是減號(-)。
uj5u.com熱心網友回復:
%后的負數被當做正數處理:不清楚為什么,應該涉及到底層運算,這不是優先級的問題
前面說的是獨立的兩個原因,沒有因果關系
uj5u.com熱心網友回復:
首先解釋 % 的作業原理:% 是一個依賴于 / 的運算子。C 語言標準規定:設有 int a, b; 則 a 嚴格等于 (a / b) * b + a % b。也就是說,a % b 的結果嚴格等于 a - (a / b) * b。然后就可以解釋你的例子了。-8 % 5 = -3:
即 (-8) % (5) = (-3)
=> (-8) - ((-8) / (5)) * (5) = (-3)
8 % -5 = 3:
即 (8) % (-5) = (3)
=> (8) - ((8) / (-5)) * (-5) = (3)
uj5u.com熱心網友回復:
首先解釋 % 的作業原理:% 是一個依賴于 / 的運算子。C 語言標準規定:設有 int a, b; 則 a 嚴格等于 (a / b) * b + a % b。也就是說,a % b 的結果嚴格等于 a - (a / b) * b。然后就可以解釋你的例子了。
-8 % 5 = -3:
即 (-8) % (5) = (-3)
=> (-8) - ((-8) / (5)) * (5) = (-3)
8 % -5 = 3:
即 (8) % (-5) = (3)
=> (8) - ((8) / (-5)) * (-5) = (3)
你這個還真可以啊。-8%-3=-3也成立。網上都搜不到你這嚴格定義啊?你怎么知道的?
uj5u.com熱心網友回復:
剛發給你了,無非就是%優先級高于-,%后的負數被當做正數處理了
為什么?負號(-)優先級高于%的,%優先級高于的是減號(-)。
%后的負數被當做正數處理:不清楚為什么,應該涉及到底層運算,這不是優先級的問題
前面說的是獨立的兩個原因,沒有因果關系
我明白你的意思了。你這種說法也對。我可以理解。不過我覺得可能4樓的說法要更好一些。。a%b=a-(a/b)*b。這個式子對所有情況都成立。
uj5u.com熱心網友回復:
剛發給你了,無非就是%優先級高于-,%后的負數被當做正數處理了
為什么?負號(-)優先級高于%的,%優先級高于的是減號(-)。
%后的負數被當做正數處理:不清楚為什么,應該涉及到底層運算,這不是優先級的問題
前面說的是獨立的兩個原因,沒有因果關系
我明白你的意思了。你這種說法也對。我可以理解。不過我覺得可能4樓的說法要更好一些。。a%b=a-(a/b)*b。這個式子對所有情況都成立。
我也覺得這解釋比較專業,學到了
uj5u.com熱心網友回復:
你這個還真可以啊。-8%-3=-3也成立。網上都搜不到你這嚴格定義啊?你怎么知道的?
我已經說了,這來自于 C 語言標準,是官方組織發布的,我參考的是 C11 標準,對應于草案 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf。當然,草案和實際會有小差別,如果有意向的話,可以考慮花錢支持正版。
uj5u.com熱心網友回復:
剛發給你了,無非就是%優先級高于-,%后的負數被當做正數處理了
為什么?負號(-)優先級高于%的,%優先級高于的是減號(-)。
這是規定,沒有為什么.建議查一下C語言符號優先級
uj5u.com熱心網友回復:
求余最后歸根結底就是呼叫匯編div/idivIDIV 帶符號除法指令
格式:IDIV SRC
執行的操作:與DIV相同,但運算元必須是帶符號的數,商和余數也都是帶符號的數,且余數的符號和被除數的符號相同
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/140770.html
標籤:C語言
上一篇:幫忙看看
下一篇:求大佬幫忙想想辦法
