21xrx.com
2024-09-20 00:39:33 Friday
登录
文章检索 我的文章 写文章
C++中的取余和位运算讲解
2023-07-04 22:56:59 深夜i     --     --
C++ 取余运算 位运算

C++是一种广泛使用的编程语言,其中包含了许多常用的运算符,如加减乘除等等。其中,取余和位运算也是C++中常用的运算符。在本文中,将对这两种运算符进行讲解。

一、取余运算符

取余运算符在C++中用符号“%”表示。该运算符需要两个数,它返回的是第一个数除以第二个数后的余数。例如:


int a = 10;

int b = 3;

int c = a % b;

在上面的例子中,变量c的值为1,因为10除以3的余数是1。需要注意的是,取余运算符只能用于整数类型,如果对浮点数使用该运算符,会出现编译错误。

取余运算符在C++中常用于判断一个数是否为另一个数的倍数。例如:


if (a % b == 0)

  // a是b的倍数

二、位运算符

位运算符是C++中另一种常用的运算符。它包括按位取反、按位与、按位或、按位异或、左移和右移六种运算。

1. 按位取反:用符号“~”表示,对一个二进制数的每一位取反,即0变为1,1变为0。

例如:


int a = 5;

int b = ~a;

在上面的例子中,变量b的值为-6。如果将变量b转换为二进制,可以发现它与变量a的二进制按位取反后的结果是一样的。

2. 按位与:用符号“&”表示,对两个二进制数的每一位进行与运算,只有在两个二进制数中该位都是1时,结果的该位才为1。

例如:


int a = 5;

int b = 6;

int c = a & b;

在上面的例子中,变量c的值为4。如果将变量a和变量b的二进制表示按位进行与运算,就会得到变量c的二进制表示。

3. 按位或:用符号“|”表示,对两个二进制数的每一位进行或运算,只要在两个二进制数中该位至少有一个是1,结果的该位就为1。

例如:


int a = 5;

int b = 6;

int c = a | b;

在上面的例子中,变量c的值为7。如果将变量a和变量b的二进制表示按位进行或运算,就会得到变量c的二进制表示。

4. 按位异或:用符号“^”表示,对两个二进制数的每一位进行异或运算,只有在两个二进制数中该位只有一个为1时,结果的该位才为1。

例如:


int a = 5;

int b = 6;

int c = a ^ b;

在上面的例子中,变量c的值为3。如果将变量a和变量b的二进制表示按位进行异或运算,就会得到变量c的二进制表示。

5. 左移:用符号“<<”表示,将一个二进制数的每一位向左移动指定的位数,移动后低位用0填充。

例如:


int a = 5;

int b = a << 2;

在上面的例子中,变量b的值为20。如果将变量a的二进制表示向左移动2位,就会得到变量b的二进制表示。

6. 右移:用符号“>>”表示,将一个二进制数的每一位向右移动指定的位数,移动后高位用0或1填充(取决于原数是正数还是负数)。

例如:


int a = 5;

int b = a >> 1;

在上面的例子中,变量b的值为2。如果将变量a的二进制表示向右移动1位,就会得到变量b的二进制表示。

综上所述,取余运算符和位运算符是C++中常用的运算符之一。了解它们的使用方法可以更好地编写和理解代码。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复