大大大大大88 发表于 2022-7-25 20:12:05

-8 % 3和 8 % 3,为什么结果不一样呀?

-8 % 3
1
8 % 3
2

柿子饼同学 发表于 2022-7-25 20:21:38

它这个求余运算看的是谁更靠近 0

青出于蓝 发表于 2022-7-25 20:36:40

-8 % 3 = -3 ------- 1

(-3 * 3 = -9 , -8 - -9 = 1)

所以说结果为 1

大大大大大88 发表于 2022-7-25 20:37:03

柿子饼同学 发表于 2022-7-25 20:21
它这个求余运算看的是谁更靠近 0

请问这个“谁”是指哪个数

大大大大大88 发表于 2022-7-25 20:42:17

青出于蓝 发表于 2022-7-25 20:36
-8 % 3 = -3 ------- 1

(-3 * 3 = -9 , -8 - -9 = 1)


wc!这样子的吗
我以为是-8%3=-2 -------- -2

青出于蓝 发表于 2022-7-25 21:57:24

大大大大大88 发表于 2022-7-25 20:42
wc!这样子的吗
我以为是-8%3=-2 -------- -2

因为除数是3 所以说 余数 r 取值范围 是:3<r<0

那余数怎么能是-2呢

青出于蓝 发表于 2022-7-25 21:58:58

大大大大大88 发表于 2022-7-25 20:42
wc!这样子的吗
我以为是-8%3=-2 -------- -2

换一个角度,如果商是 -2, 除数 是 3

商与除数的乘积(-6)大于 被除数(-8)
那这是不符合除法运算的

欢迎追问!

sampan 发表于 2022-7-26 08:54:10

这个应该是算术运算符的优先级问题。当 - 号作为‘负号’时,它是单目运算符(即只对一个表达式进行操作的运算符),这个时候负号的优先级高于求余运算%。所以有:
      -8 % 3 = (-8) % 3 =1
      8 % 3 = 2   
附:各算术运算符的优先级:
                      幂运算 (**)>正负号 >乘法,除法,取模,取余( “*, /,//, %”)>加减 “+ -”
页: [1]
查看完整版本: -8 % 3和 8 % 3,为什么结果不一样呀?