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)
下一篇:最后一頁