当前位置:首页 » 编程语言 » c语言位运算符

c语言位运算符

发布时间: 2022-01-14 08:40:43

c语言位运算

这个很简单,你打开电脑的计算器,将521输入,然后用二进制显示,你看到的是:1000001001,
123是:1111011;与123 按位与的结果就是0000 1001;用十进制显示的时候就是9,其他的计算也是这样算出来的,你试下就知道了,在此我就不一一举例了。
&:这是与操作,只有1&1才能是1
|:这是或操作,有一个是1结果就是1
~:取反操作,

㈡ C语言中按位与(&)运算符是什么意思

位运算符就是直接对整数在内存中的二进制位进行操作运算。比如,&&运算本来是一个逻辑运算符,但整数与整数之间可以用&进行运算。举个例子,6的二进制是110,11的二进制是1011,那么6 & 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。
C语言提供了六种按位运算符:& 按位与| 按位或^ 按位异或~ 取反<< 左移>> 右移

也就是与上0相当于把那位数清0,与上1相当于把那位保留。

㈢ C语言中按位与(&)运算符是什么意思

是将二进制数按照位的对应相与,得到一个新的二进制数。1与0为0;1与1为1;0与0为0。

分析如下:

就是二进制的每一位相与。

比如:1010 0011& 0000 1111,结果为0000 0011。也就是与上0相当于把那位数清0,与上1相当于把那位保留。

(3)c语言位运算符扩展阅读

1、按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。

例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9&5=1。 按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 运算 ( 255 的二进制数为11111111)。

㈣ C语言里的按位异或运算符

按位异或,其操作符为^,形式为
a^b
计算时,根据操作数a和b每位的值,计算结果,当a,b的对应位上值相同时,结果的该位上值为0,否则值为1。

char a = 0x12, b = 0x34;
a^b
= 0x12 ^ 0x34
= B0001 0010 ^ B0011 0100
= B0010 0110
=0x26

(4)c语言位运算符扩展阅读:

异或,英文为exclusive OR,缩写成xor异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:a⊕b = (¬a ∧ b) ∨ (a ∧¬b)

如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。

异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。

㈤ c语言位运算是什么

运算:C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。

在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。

当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则就会显得十分重要。

运算符号:

比较特别的是,比特右移(>>)运算符可以是算术(左端补最高有效位)或是逻辑(左端补0)位移。

例如,将11100011右移3比特,算术右移后成为11111100,逻辑右移则为00011100。因算术比特右移较适于处理带负号整数,所以几乎所有的编译器都是算术比特右移。

运算符的优先级从高到低大致是:单目运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符(=)和逗号运算符。

㈥ C语言中“按位运算符”是什么意思

1、按位运算符就是直接对整数在内存中的二进制位进行操作运算。比如,&&运算本来是一个逻辑运算符,但整数与整数之间可以用&进行运算。举个例子,6的二进制是110,11的二进制是1011,那么6 & 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。

2、C语言提供了六种按位运算符:
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> 右移

㈦ 关于c语言按位运算符

0结果是0xC
先算 original & mask 因为 mask为0xF 那么 0xABC & 0xF =0xC

0 或任何数都是任何数 所以reslut =0xC

㈧ C语言中的按位运算符和逻辑运算符

&&是逻辑与,计算机的逻辑无非两种,0和非0,7和8都是非0,那么7&&8就是非0,也就是真了。
&是位操作,即按两个操作数的二进制每一位进行与运算
7的二进制:00000111
8的二进制:00001000
与运算后为:00000000,结果就是假了

㈨ C语言位运算

按位与 | 按位或 ^

按位异或 ~ 取反 <<

左移 >> 右移<<

1. 按位与运算。按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。

2. 按位或运算。按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。 例如:9|5可写算式如下: 00001001|00000101 00001101 (十进制为13)可见9|5=13 main(){ int a=9,b=5,c; c=a|b; printf("a=%d/nb=%d/nc=%d/n",a,b,c); }

3. 按位异或运算。按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现,例如9^5可写成算式如下: 00001001^00000101 00001100 (十进制为12) main(){ int a=9; a=a^15; printf("a=%d/n",a); }。

5. 左移运算。左移运算符“<<”是双目运算符。其功能把“<< ”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数, 高位丢弃,低位补0。例如: a<<4 指把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。

㈩ c语言之中的位运算符是怎么运算的呢

C语言提供了表12—1所列出的6种位运算符以及表12-2所列出的5种扩展运算符。
表12-1
运 算 符 含 义 优 先 级
~ 按位求反 高
<< 左移


>> 右移
& 按位与
^ 按位异或
| 按位或
表12-2
扩 展 运 算 符 表 达 式 等 价 的 表 达 式
<<= a<<=2 a=a<<2
>>= b>>=1 b=b>>1
&= a&=b a=a&b
^= a^=b a=a^b
|= a|=b a=a|b
【说明】
位运算符中,只有“反求”(~)是单目运算符,即要求运算符两侧各有一个运算量,其余均为双目运算符。
运算的运算对象只能是整形或字符型数据,不能是其他类型的数据,在VC 6.0中整形数据占4个字节,字符型数据占1个字节。
参与运算时,操作数都必须首先转换成二进制形式,然后再执行相应的按位运算。
各双目运算符与赋值运算符结合可以组成扩展的赋值运算符,见表12-2.

12.2 位运算符详解
12.2.1 按位与运算
按位与运算“&”的运算格式:
操作数1&操作数2
【说明】
其中“操作数1”和操作数“2”必须是整型或字符型数据。
按位与运算规则是:当参加运算的2个二进制数的对应位都为1,则该位的结果为1,否则为0,即0&0=0,0&1=0,1&0=0,1&1=1。
【例如】
4&5的运算如下:
00000100 (4)
(&) 00000101 (5)
00000100 (4)
因此,4&5的值为4。
可以利用按位与运算来实现一些特定的功能,下面介绍几种常见的功能。
清零
如果想将一个数的全部二进制置为零,只要找一个二进制数,其中个个位要符合以下条件:原来的数中为1的位,新数中相应的位为0。然后使二者进行按位与运算即可达到清零的目的。

【例如】
原有数为171,其二进制形式为10101011,另找一个数,设它为00010100,它符合以上条件,即在原数为1的位置上,它的位值均为0。将两个数进行&运算:
10101011
(&) 00010100
00000000
当然也可以不用00010100这个数而用其他数(如01000100)也可以,只要符合上述条件即可。任何一个数与“0”按位于之后的结果为0。
娶一个数中某些指定位
【例如】
有一个两字节的短整型数x,想要取其中的低字节,只要将x与八进制数(377)8按位于即可。如图12-1所示,经过运算“z=x&y”后z只保留x的低字节,高字节为0.

x 00 10 11 00 10 10 11 00
y 00 00 00 00 11 11 11 11
z 00 00 00 00 10 10 11 00
图12-1 取x的低八位数

x 00 10 11 00 10 10 11 00
y 11 11 11 11 00 00 00 00
Z 00 10 11 00 00 00 00 00
图12-2 取x的高8位

如果想取两个字节中的高字节,如图12-2所示只需进行运算z = x &(177400)8。
保留一个数的某些位
要想将哪一位保留下来,就与一个数进行&运算,此数在该位取1。
【例如】
有一数01110100,想把其中左面第1、3、5位保留下来,可以这样运算:
01110100 (十进制数116)
(&) 10101010 (十进制数170)
00100000 (十进制数32)

热点内容
java比较三个数 发布:2024-11-15 15:08:39 浏览:835
fml加密 发布:2024-11-15 15:05:56 浏览:882
存储上市龙头 发布:2024-11-15 14:52:14 浏览:37
我的世界服务器怎么重置教学 发布:2024-11-15 14:52:13 浏览:122
C语言tf 发布:2024-11-15 14:36:22 浏览:811
违反密码法是什么意思 发布:2024-11-15 14:36:20 浏览:920
androidmp3录音 发布:2024-11-15 14:32:50 浏览:493
英朗自动挡哪个配置最好 发布:2024-11-15 14:27:44 浏览:253
编译原理断言有哪几种 发布:2024-11-15 14:25:29 浏览:201
数据库数据重复 发布:2024-11-15 14:23:17 浏览:781