1 Star 0 Fork 0

满心欢喜/journey to the West

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
使用按位与和1的方式判断输入的数字是奇数还是偶数.cpp 1.58 KB
一键复制 编辑 原始数据 按行查看 历史
满心欢喜 提交于 2022-03-15 23:08 . practice
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
//这个代码是通过使用按位与的方式来判断输入的数字,相关的步骤见下面
//按位与的详细操作是:对应位有0就是0,全为1时才是1
int main()
{
int n;
cout << "Which number do you want to test?\n";
cin >> n;
if (n & 1)
cout << "number " << n << '\t' << "is odd.\n";
else
cout << "number " << n << '\t' << "is even.\n";
return 0;
}
//
// 1为一个正数,所以原,反,补码完全相同。
// 1; 00000000 00000000 00000000 00000001
//
// 当我们输入一个奇数时:
// 例一:5
// 5 00000000 00000000 00000000 00000101
// 1 00000000 00000000 00000000 00000001
// 结果: 00000000 00000000 00000000 00000001 即1
//
// 例二:15
//15 00000000 00000000 00000000 00001111
//1 00000000 00000000 00000000 00000001
//结果: 00000000 00000000 00000000 00000001 即1
//
//
// 当我们输入一个偶数的时候:
// 例一:6
//6 00000000 00000000 00000000 00000110
//1 00000000 00000000 00000000 00000001
//结果: 00000000 00000000 00000000 00000000 即0
//
// 例二:14
//14 00000000 00000000 00000000 00001110
//1 00000000 00000000 00000000 00000001
//结果: 00000000 00000000 00000000 00000000 即0
//
//
// 对结果的分析:
// 按位与的操作,是对应位为0,则为0;对应位全为1时,才为1
// 1的补码比较特殊,除了最后一位为1以外,其余的位数全部为0
// 这就使得,使最后结果为1还是0的关键性因素在输入数字的二进制位的最后一位
// 并且我们知道,奇数的最后一位肯定是1,与1的最后一位取按位与之后,结果为1,为真,所以输出该数字为奇数
// 同理,如果输入的数字为一个偶数,则取按位与之后的结果不是1,对应第二种结果,即输出该数字为偶数
//
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/the-shinging-sun/journey-to-the-west.git
[email protected]:the-shinging-sun/journey-to-the-west.git
the-shinging-sun
journey-to-the-west
journey to the West
master

搜索帮助