介绍
本实验旨在帮助学生理解如何使用位运算符实现一个程序来判断一个数是奇数还是偶数。此外,它还提供了一种不使用取模运算符来判断一个数是奇数还是偶数的方法。
位运算符
- 首先向学生解释什么是位运算符。
- 解释程序如何使用位运算符检查奇数和偶数:
- 如果一个数是奇数,它的最低有效位(LSB)为 1。
- 如果一个数是偶数,它的最低有效位(LSB)为 0。
- 向学生提供代码实现,并要求他们将代码复制到
~/project/目录下的main.c文件中。 - 代码实现如下:
#include<stdio.h>
int main()
{
printf("\n\n\t\tLabEx - Best place to learn\n\n\n");
int x;
for(x = 0; x <= 10; x++)
{
if(x&1) // if number is odd
printf("\t\t\t%d is odd\n",x);
else if(!(x&1)) // ! is used inside if to reverse the boolean value
printf("\t\t\t%d is even\n",x);
}
printf("\n\n\n\n\t\t\tCoding is Fun !\n\n\n");
return 0;
}
不使用取模运算符判断奇偶数
- 向学生解释,即使不使用取模运算符,也可以判断一个数是奇数还是偶数。
- 简要描述如何实现这一点:
- 如果一个数是偶数,那么将其除以 2 再乘以 2 应该会得到原始数字。
- 如果一个数是奇数,那么将其除以 2 再乘以 2 不会得到原始数字。
- 向学生提供代码实现,并要求他们将代码复制到
~/project/目录下的main.c文件中。 - 代码实现如下:
#include<stdio.h>
int main()
{
printf("\n\n\t\tLabEx - Best place to learn\n\n\n");
int n;
printf("Enter a number: ");
scanf("%d",&n);
if((n/2)*2 == n)
printf("\n\n\t\t %d is Even\n", n);
else
printf("\n\n\t\t %d is Odd\n", n);
printf("\n\n\n\n\t\t\tCoding is Fun !\n\n\n");
return 0;
}
测试
- 要求学生测试两种代码实现。
- 运行代码并检查输出是否符合预期。
总结
学生现在已经熟悉了两种判断一个数是奇数还是偶数的方法。他们可以在任何 C 程序中实现这些技术,以实现所需的功能。



