一、总体思路(以八位二进制码为例)
(1)奇偶数二进制码的特性
奇数:二进制码最后一位为1
偶数:二进制码最后一位为0
(2)&运算特性(二进制码及位运算的讲解可见此处)
有0为0
全1为1
(3)1的二进制码特性
1的二进制码0000 0001
因此,我们可以将一个数a与1进行与运算,前七位运算结果为0,而对于最后一位,a为奇数时为1,a为偶数时为0,故a&1的结果为:
1,a为奇数;
0,a为偶数;
因此可将a&1的结果作为判断条件
补充:
(1)三目运算符:基本格式:
三目运算符适合
if(xxx) //xxx代表条件
{
yyy; //yyy代表操作1
}
else
{
zzz; //zzz代表操作2
}
结构的简化
即编写代码时可以将xxx放到?前,yyy放到?后:前,最后将zzz放到:后
即:
xxx?yyy:zzz;
//xxx代表条件
//yyy代表操作1
//zzz代表操作2
实例:
#include<iostream>
using namespace std;
//程序功能:输出a、b中较大的数
int main()
{
int a,b,c;
cin>>a>>b;
if(a>b) c=a;
else c=b;
cout<<c<<endl;
return 0;
}
等同于:
#include<iostream>
using namespace std;
//程序功能:输出a、b中较大的数
int main()
{
int a,b,c;
cin>>a>>b;
c=a>b?a:b; //翻译:a>b满足吗?满足则该式子结果为a,不满足则该式子结果为b
cout<<c<<endl;
cout<<(a>b?a:b)<<endl; //写法2
a>b?cout<<a<<endl:cout<<b<<endl; //写法3
return 0;
}
二、代码实现
#include <iostream>
using namespace std;
int main() {
int a;
cin >> a;
cout << (a & 1 ? "该数为奇数" : "该数为偶数"); //写法一
a&1?cout<<"该数为奇数"<<endl:cout<<"该数为偶数"<<endl; //写法二
return 0;
}
总计八行代码