当前位置:首页 » 编程语言 » c语言异或和与或运算
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言异或和与或运算

发布时间: 2022-04-12 21:51:46

c语言的按位与,或,非,异或都什么意思.有什么用

位运算符有:&(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。

优先级从高到低,依次为~、&、^、|

按位与运算有两种典型用法,一是取一个位串信息的某几位,如以下代码截取x的最低7位:x & 0177。二是让某变量保留某几位,其余位置0,如以下代码让x只保留最低6位:x = x & 077。

按位或运算的典型用法是将一个位串信息的某几位置为1。如将要获得最右4位为1,其他位与变量j原来其他位保持相同,可用逻辑或运算017|j;

按位异或运算的典型用法是求一个位串信息的某几位信息的反。如欲求整型变量j的最右4位信息的反,用逻辑异或运算017^j,就能求得j最右4位的信息的反,即原来为1的位,结果是0,原来为0的位,结果是1。 交换两个值,不用临时变量,假如a=3,b=4。想将a和b的值互换,可以用以下赋值语句实现:
a=a^b; b=b^a; a=a^b;

取反运算常用来生成与系统实现无关的常数。如要将变量x最低6位置成0,其余位不变,可用代码x = x & ~077实现。

❷ 请帮我讲解一下C语言中的异或运算

首先,我们看一下异或的原理:
a = 3 ^ 5;
3的二进制是0011,5的二进制是0101。异或发现两者的不同之处,所以a最终为0110b(4)。
了解了异或的基本原理后,接下来看上述的代码。
a^=b;
这一句使得a被赋值为“数值a”与“数值b”的“差异值”。
然后:b^=a;
这一句用异或利用“差异值”来还原a的数值,并赋值给b。此时b等于a先前的数值。
最后一句:a^=b;
因为a仍然保存着“差异值”,这一句通过异或使得b的初始值被还原,并赋值给a。
。。。。。
这样,异或就将a与b的数值“巧妙”地交换了……
我也是网络的,和楼主一起学习…………

❸ C语言问题,按位与、按位或、按位异或、按位取反,解释下。

先说一下布尔值的与、或、异或、反运算:
与运算,两者都为真计算结果为真,反之为假:
1 & 1 = 1,1 & 0 = 0,0 & 1 = 0,0 & 0 = 0;
或运算,至少其一都为真计算结果为真,反之为假:
1 | 1 = 1,1 | 0 = 1,0 | 1 = 1,0 | 0 = 0;
异或运算,两者不同为真,反之为假:
1 ^ 1 = 0,1 ^ 0 = 1,0 ^ 1 = 1,0 ^ 0 = 0;
取反运算,单目运算符:
~1 = 0,~0 = 1;
以上例子 1 代表真,0 代表假。

按位运算就是将二进制位的每一位进行如上计算。
如 2 | 5,转换为二进制(以 1 字节 8 位为例):
00000010 | 00000101,每个二进制位分别进行或运算后得:
00000111 即 7。虽然 7 = 5 + 2 但不代表 2 | 5 = 2 + 5。
如:2 | 6 = 6,5 | 6 = 7,2 | 4 | 5 | 6 | 7 = 7。
同理,按位与运算 2 & 5 的结果为 0:
00000010 & 00000101 = 00000000
按位与运算 2 & 6 的结果为 2(二进制 00000010):
00000010 & 00000110 = 00000010。
同样也能算出 2 ^ 6 的结果为 4(二进制 00000101):
00000010 ^ 00000110 = 00000100。
取反运算 ~00000110 = 11111001。
当然,对一个数字进行取反运算结果是多少,还与该类型是有符号还是无符号,占用的字节大小等有关。上面的例子只是以一个字节为例进行说明。

❹ c语言中同或、异或怎么表示

  • 同&&

  • 或||

  • 异!

拓展资料:

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1]目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

❺ 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

(5)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/C++中标准运算符,不需要另外编写函数。
与运算: c = a & b;
或运算: c = a | b;
非运算: ~a;
非运算: ~b

另外,!是逻辑运算符,对于a,如果a 为 0,!a = 1,如果a 不为 0,则!a = 0。

❼ C语言 异或运算

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
FILE *p1,*p2;
char ch,n;
p1=fopen("D:\\源文件.txt","r");
p2=fopen("D:\\目标文件.txt","w");
if(p1==NULL||p2==NULL)
{
printf("文件打开失败\n");
exit(0);
}
printf("请输入密钥,并牢记,解密时要再次输入:");//只要再对加密的文件再进行一次异或运算就得到源文件
n=getch();
printf("*\n");
while(1)
{
ch=fgetc(p1);
if(ch==EOF)
break;
ch=ch^n;
fputc(ch,p2);
fflush(p2);
}
fclose(p1);
fclose(p2);
return 0;
}

❽ C语言的按位与、或、非、异或都什么意思。有什么用

这些是位操作运算符:参与运算的量,按二进制位进行运算。

在计算机中,数据都是以二进制数形式存放的,位运算就是指对存储单元中二进制位的运算。C语言提供6种位运算符。

包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

位运算符 & |~<< >> ∧ 按优先级从高到低排列的顺序是:

位运算符中求反运算“~“优先级最高,而左移和右移相同,居于第二,接下来的顺序是按位与 “&“、按位异或 “∧“和按位或 “|“。顺序为~ << >> & ∧ | 。

(8)c语言异或和与或运算扩展阅读:

例:设二进制数a是00101101 ,若通过异或运算a∧b 使a的高4位取反,低4位不变,则二进制数b是。

解析:异或运算常用来使特定位翻转,只要使需翻转的位与1进行异或操作就可以了,因为原数中值为1的位与1进行异或运算得0 ,原数中值为0的位与1进行异或运算结果得1。而与0进行异或的位将保持原值。异或运算还可用来交换两个值,不用临时变量。

如 int a=3 , b=4;,想将a与b的值互换,可用如下语句实现:
a=a∧b;

b=b∧a;

a=a∧b;

所以本题的答案为: 11110000 。

❾ 在c语言中异或的用法是什么

异或是一个数学运算符。它应用于逻辑运算。

在【布尔值运算】中:真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为假。

在【二进制值运算】中:不同为1,相同为0,如1001异或1010等于0011。
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。

❿ c语言异或操作

c语言异或加密实现的原理为,将任意值,与相同值两次异或后,结果与原值相同。所以可以通过将源数据与一个固定的值(秘钥key)异或后,得到密文,然后将密文再次与秘钥异或,得到原文。这样就实现了异或加密及解密。
c语言中的异或是一种按位操作的计算,其计算原理为,操作数对应位上的值相同,则结果位上值为0,否则为1.异或的运算符号为^,于是真值表如下:
0^0=0
0^1=1
1^0=1
1^1=0
这样区分源数据和秘钥值,有如下四种可能:
0^0=0
0^0=0
0^1=1
1^1=0
1^0=1
1^0=1
1^1=0
0^1=1
以上是将一个值,用另一个值连续异或两次后的计算过程,可以看到,最终的值与原始值是相同的。这就是异或加密的基础原理。