C语言的各种位运算符的操作简述

运算符:

算术运算符: + , - , * , / , % , ++ , --

符合运算符: += , *= , /= , %=

条件运算符:  ? :

关系运算符: == , >= , <= , != , > , <

逻辑运算符: && , || , !

赋值运算符: =

其他运算符: * , & , -> , .

位运算符:

1 > 按位与 &同时为一则为一
否则为零 3 & 5结果为 1(先将两个数化为二进制在进行计算)

3 > 0000 0011

5 > 0000 0101
二进制 然后按照
同时为一则为一 否则为零
变为了 0000 0001

换算之后就变成了1;

一般用于清零操作.

2 >按位或 |
同为0则为0
否则为1    9 | 5        9 >  00001001

|

5 >  00000101

=00001101    13

3 > 按位异或不同为1,相同为0;

9 ^ 5              0000 1001

0000 0101

0000 1100    =>  8 + 4  = 12;

4 >按位取反  ~  1变零    零变1  
对于单个数来说  ~9

5 >左移   <<

高位舍弃,低位补零

高位           低位

9 > 0000 0000 0000 1001

9 << 3      0000 0000 0100 1000    64 + 8 = 72
相当于  9 * 2的 3次方

m << n 相当于 m * 2的n次方.

6 > 右移 >>

低位舍弃 ,高位补零(正数)或 1(负数)

有符号位
符号位跟着移动.

10

原码 :
原码就是本身的二进制  0000 1010

补码 : (所有的数,存放在内存里的都是以补码的形式存放的.)

1 >正数:正数的补码和原码相同

2 >负数:负数的补码,符号位不变,数值部分,取反再加1;

例如: -10的代码

10000000 00000000 00000000 00001010

11111111 11111111 11111111 11110101

+1

11111111 11111111 11111111 11110110

按照16进制存放                   (4 + 2)

FF       FF        FF      F    6 (F6)

有的电脑会反着存放

F6       FF        FF      FF

反码 :

1 >正数的反码和原码相同.

2 >负数的反码,符号位不变,数值部分取反

C语言程序编辑执行的过程:

1 > 程序员的编码区;(coding ,
撸码);

2 > 预处理(预编译)

3 > 编译成汇编代码

4 > 将汇编代码形成目标文件

5 >目标文件和附加的库文件链接,形成可执行的文件.

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-11 07:27:06

C语言的各种位运算符的操作简述的相关文章

黑马程序员——c语言学习心得——位运算符

黑马程序员——c语言学习心得——位运算符 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 位运算符C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移 >> 右移 1. 按位与运算 按位与运算符"&"是双目运算符.其功能是参与运算的两数各对应的二进位相与.只有对应的两个二进位均为1时,结果位才为1 ,否则为0.参与运算的数以补码方式出现. 例如:9&

黑马程序员——c语言学习心得——位运算符a

黑马程序员——c语言学习心得——位运算符 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下: 方法一, 形参给出第二维的长度. 例如: #include <stdio.h>void func(int n, char  str[ ][5] ){int i;for(i = 0; i < n; i++)  printf("/nstr[%d] = %s/n"

C语言提供的位运算符

运算符 含义 描述 & 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0 | 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1 ^ 按位异或 若参加运算的两个二进制位值相同则为0,否则为1 ~ 取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0 << 左移 用来将一个数的各二进制位全部左移N位,右补0 >> 右移 将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0 位运算是指按二进制进行的运算.在系统

关于C语言中的位运算符的学习即应用

一.运算符的种类和运算规则: &      与:全1则1,有0则0   |       或:有1则1,全0则0   ^   异或:相同为0,不同为1   ~   取反:~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0   << 左移:用来将一个数的各二进制位全部左移N位,右补0   >> 右移:将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0 二.各种位运算符的应用: 1.  & 运算 a.清零运算 若想对一个存储单元清零,

三位运算符,联系操作

package hello; public class gaofushuai { public static void main(String[] args){ int a=1; int b=1; int c=1; String str=a>0?"高":"矮"; String www=b>0?"富":"穷"; String sss=c>0?"帅":"丑"; System

C语言位运算符:与、或、异或、取反、左移和右移

语言位运算符:与.或.异或.取反.左移和右移 位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型. C语言提供的位运算符列表:运算符 含义 描述& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0| 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1^ 按位异或 若参加运算的两个二进制位值相同则为0,否则为1~ 取反 ~

【转】C语言位运算符:与、或、异或、取反、左移与右移详细介绍

转载自:http://www.jb51.net/article/40559.htm,感谢原作者. 以下是对C语言中的位运算符:与.或.异或.取反.左移与右移进行了详细的分析介绍,需要的朋友可以过来参考下 位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型. C语言提供的位运算符列表:运算符 含义 描述& 按位与 如果两个相应的二进制位都为1,则该位

c 语言的位运算符复习

转载和修正,原文连接:http://www.cnblogs.com/911/archive/2008/05/20/1203477.html 位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题. C语言提供了6个位操作运算符. 这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型. C语言提供的位运算符列表:运算符    含义       描述&         按位与      如果两个相应的二进制位都为1,则该位的结果值为1,否

C语言位运算符:与、或、异或、取反、左移与右移详细介绍

位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型. C语言提供的位运算符列表:& 按位与, 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0| 按位或, 两个相应的二进制位中只要有一个为1,该位的结果值为1^ 按位异或, 若参加运算的两个二进制位值相同则为0,否则为1~ 取反, ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将