取模(除法运算的余数)(%)
取模运算符产生下列表达式给定的余数,其中 e1 是第一个操作数,e2 是第二个操作数:e1 - (e1 / e2) * e2,其中两个操作数都是整型类型。
取模表达式中被 0 除的结果是不确定的,将会导致运行时错误。 因此,以下表达式生成未定义的错误结果
i % 0
f / 0.0
如果取模表达式的两个操作数具有相同的符号,则结果为正。 否则,结果为负。 取模运算的符号的结果是实现定义的。
以下为ESP32S3取模运算的结果,示例列出了取模数字为2-5、10、20的程序及结果。
%2
printf("cnt: %d", cnt);
vTaskDelay(500 / portTICK_PERIOD_MS);
gpio_set_level(GPIO_OUTPUT_IO_2, cnt % 2);
printf(" %d\n", cnt % 2);
cnt++ ;
任何数%2都可以检测是否为偶数,如果结果等于1则表示为奇数
这个可以干什么?可以点灯:)
还可以控制点灯的占空比_
cnt: 0 0
cnt: 1 1
cnt: 2 0
cnt: 3 1
cnt: 4 0
cnt: 5 1
cnt: 6 0
cnt: 7 1
cnt: 8 0
cnt: 9 1
cnt: 10 0
%3
printf("cnt: %d", cnt);
vTaskDelay(500 / portTICK_PERIOD_MS