逍遙自在學C語言 | 位運算符~的高級用法
前言
在上一篇文章中,我們介紹了^運算符的高級用法,本篇文章,我們將介紹~ 運算符的一些高級用法。

一、人物簡介
- 第一位閃亮登場,有請今后會一直教我們C語言的老師 —— 自在。

- 第二位上場的是和我們一起學習的小白程序猿 —— 逍遙。

二、相反數


- 我們可以利用負數的補碼性質,來獲得一個
正數的相反數
#include <stdio.h>
int main()
{
int a = 18;
printf("相反數為%d\n", ~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 = %d\n", 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 = %d\n", a + ~b + 1 );
return 0;
}
- 運行結果

小結
通過這篇文章,我們學會了用位運算符~的3種高級用法
1、求一個整數的相反數
2、用~替代加法運算
3、用~替代減法運算
在下一篇文章中,我們將介紹位運算符<<的一些高級用法。
??歡迎各位 ??點贊 ?收藏 ??評論,如有錯誤請留言指正,非常感謝!

浙公網安備 33010602011771號