关于“取模”运算的实验

一直以来都无法理解取模的具体操作。现在不妨先做个实验,究竟取模的结果是什么。代码如下:

#include <stdio.h>
main()
{
    printf("1 \37 3 = %d\n",1%3);
    printf("2 \37 3 = %d\n",2%3);
    printf("3 \37 3 = %d\n",3%3);
    printf("4 \37 3 = %d\n",4%3);
    printf("5 \37 3 = %d\n",5%3);
    printf("6 \37 3 = %d\n",6%3);
}

执行生成文件后形成如下内容:
1 % 3 = 1
2 % 3 = 2
3 % 3 = 0
4 % 3 = 1
5 % 3 = 2
6 % 3 = 0
先分析大于三的数与三进行取模运算。4%3上1余1,其余的5和6也是类似的计算,所以大于三的数与三进行取模运算比较好理解。接着再来看小于及等于三的数,先看三本身,取模上一余0,所以为0;接着看2,上0余下的就是2本身,同样1也是余下1本身。
所以可以总结出取模运算实质就是“除法后余下的零头”但是要注意“上0进行除法”的情况,即上述1和2与3进行取模运算。

——–
题外话,这个程序编译的时候出现了点小问题,在printf函数的双引号内想要打出百分号不能够直接键入%,因为这里的1%3在双引号中表示的是1这个数用三个字符的位置来显示。所以必须得换作用转义字符,查ASIIC表后发现百分号是第37个,所一用/37来表示百分号,前后记得要加上空格。

3 thoughts on “关于“取模”运算的实验

  1. 对的。。。这个我今天才发现。只是那个上0的,有点奇特啦~

Leave a comment