C语言操作符分为一下几种:数学运算符、赋值运算符、关系运算符、位运算符和其他运算符,下来就让我们来熟悉下这几种运算符!
算数运算符:就是我们平常使用的+、-、*、\;四则运算符号,其使用形式符合数学运算规律,这里不再赘述。
赋值运算符:+=、-=、*=、\=、%=;举例说明:a+=b含义为a=a+b;依次类推,其余赋值运算符的含义显而易见。
关系运算符:>= 、<=、!=;举例说明:a<=b含义为判断a是否小于等于b,若相等则结果为1,否则为0。
位运算符:~(按位取反)、&(与)、|(或)、^(异或)、<<(左移)、>>(右移)等;表示按比特位进行运算的符号,其中<<(左移)一位表示这个数乘2;>>(右移)一位表示这个数除2。
其他运算符:主要存在于函数库中,可以直接调用。
下面,我们就举例来说明这些操作符在实际中的简单运用。`
1.求二进制数中1个数:
#include<stdio.h>
#include<Windows.h>
int count_one_bits(unsigned int value)
{
int count = 0;
while (value)
{
if (1 == value % 2)
{
count++;
}
value = value / 2;
}
return count;
}
int main()
{
printf("二进制中1的个数 = %d", count_one_bits(10));
system("pause");
}
2.输出一个数的奇数位和偶数位二进制序列
#include<stdio.h>
#include<Windows.h>
void print_num(unsigned value)
{
int count = 0;
int a[32] = { 0 };
int i = 0;
while (value) {
a[i++] = value % 2;
value /= 2;
count++;
}
printf("奇数序列\n");
for (i = count;i >= 0;i -= 2) {
printf("%d", a[i]);
}
printf("\n");
printf("偶数序列\n");
for (i = count - 1;i >= 0;i -= 2) {
printf("%d", a[i]);
}
printf("\n");
}
int main()
{
int value = 11;
print_num(value);
system("pause");
}
3.编程实现两个整型(32位)整数m和n的二进制表达中有多少个比特位不同
#include<stdio.h>
#include<Windows.h>
int differ_bit(int M, int N)
{
int i = 0;
int count = 0;
M ^= N;
for (i = 0;i < 32;i++) {
if ((M >> i) & 1 == 1) {
count++;
}
}
return count;
}
int main()
{
printf("%d",differ_bit(2,68));
system("pause");
}
以上,就是我对操作符部分简单的总结,如有不当之处,请提出,我会虚心改正。