前言 在上一篇文章中,我們介紹了^運算符的高級用法,本篇文章,我們將介紹~ 運算符的一些高級用法。 一、人物簡介 第一位閃亮登場,有請今後會一直教我們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、用~替代減法運算
在下一篇文章中,我們將介紹位運算符<<
的一些高級用法。