今天,我们来学位元运算子以及赋值运算子吧!
位元运算子作用於位元,并逐位执行。"&"、"|"、"^"真值表如下:
A |
B |
A&B |
A\|B |
A^B |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
简单介绍一"&"、"|"、"^"这三个运算子:
&
": 一定要都是 1,输出才为 1。(似数位逻辑里的 and 闸)|
": 任一为 1,输出就为 1。(似数位逻辑里的 or 闸)^
": 相同为 1,不同为 0。(似数位逻辑里的 xor 闸)再举个例子:
如果今天有个变数 A=60,变数 B=13,以二进位表示:A= 00111100 B= 00001101
接下来我们做位元运算:
而 C 所支援的位元运算还加上"~"、"<<"、">>":
~
" : 取反运算子,(~ A) 会得到 61,即 11000011,一个有符号二进位补数形式。<<
" : 二进位左移运算子,将一个数的各二进位全部左移若干位(左边的二进位丢弃,右边补 0) ex. A<<2,会等於 240,因为本来 A= 00111100,往左移位一次等於 01111000,再移一次等於 11110000,就会等於 240。>>
" : 二进制右移运算子。将一个数的各二进位全部右移若干位,正数左补 0,负数左补 1,右边丢弃。ex. A>>2,会等於 15,因为本来 A= 00111100,往右移一位会等於 00011110 再往右移一位会等於 00001111,就会等於 15。以上参考
ITREAD01 - 位运算子
上面举例的,写成程序会长这样:
#include<stdio.h>
int main(){
int A = 60, B = 13 ;
printf("A&B=%d\n", A&B);
printf("A|B=%d\n", A|B);
printf("A^B=%d\n", A^B);
printf("~A=%d\n", ~A);
printf("A<<2=%d\n", A<<2);
printf("A>>2=%d", A>>2);
return 0;
}
这是输出结果:
会发现,程序输出结果与刚刚举例推算出的结果是一样的~
明天,来介绍运算子部分的最後一个小单元 : 赋值运算子!!
点击进入React源码调试仓库。 概述 每个fiber节点在更新时都会经历两个阶段:beginWor...
当我们使用销售或是产品的模组,我们有时候会针对各种货币来做销售单,但这样会造成统计问题,所以Odoo...
Youtube 频道:https://www.youtube.com/c/kaochenlong ...
开始打程序前,网页设计是不可或缺的环节! 网站介面设计,称为UIUX设计 UI指使用者介面(User...
今天到嘉义开店 从高雄坐火车到嘉义 在坐火车的一个小时 把外国教python flask的影片看完 ...