C语言中位运算符的高级用法(4)

2023-08-22 12:21:55 来源:知微之见


【资料图】

前言

在上一篇文章中,我们介绍了^运算符的高级用法,本篇文章,我们将介绍~运算符的一些高级用法。

一、人物简介

第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。

二、相反数

我们可以利用负数的补码性质,来获得一个正数的相反数
#include < stdio.h >int main() {    int a = 18;    printf("相反数为%dn", ~a + 1 );    return 0;}
运行结果

三、替换加法

利用相反数的规则,我们可以替换掉加法运算中的加号a + b = a-(-b) = a - (~b+1)最终得到a + b = a - ~b - 1
#include < stdio.h >int main() {    int a = 23;    int b = 7;     printf("a + b = %dn", a - ~b - 1 );    return 0;}
运行结果

四、替换减法

同样的减法也可以利用相反数的规则a - b = a +(~b+1) = a + ~b + 1
#include < stdio.h >int main() {    int a = 23;    int b = 7;     printf("a - b = %dn", a + ~b + 1 );    return 0;}
运行结果

小结

通过这篇文章,我们学会了用位运算符~的3种高级用法

1、求一个整数的相反数

2、用~替代加法运算

3、用~替代减法运算

在下一篇文章中,我们将介绍位运算符<<的一些高级用法。

标签:

上一篇:C语言中位运算符的高级用法(5)
下一篇:最后一页