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 >目标文件和附加的库文件链接,形成可运行的文件.
- C语言的各种位运算符的操作简述
- [C语言]双链表各种基本操作
- 八.二叉树各种操作的C语言实现 树的一些基本的操作,包括,树的建立,树的深度,
- C语言链表各种操作
- c语言链表各种操作
- 对队列各种操作的实现(C语言)
- C语言实现单链表的各种操作
- 用C语言实现单链表的各种操作(二)
- c语言实现字符串的各种操作
- <C语言>结构体的各种定义、初始化、操作代码实例----注释详解
- 八.二叉树各种操作的C语言实现 二叉树中各种遍历的非递归和递归算法的实现
- C语言各种文件操作
- C语言常用的各种操作字符串的函数
- C语言对数组的各种操作操作
- 单链表各种操作的C语言实现(一)
- c语言单链表的各种操作<未完>
- C语言、Java语言、C#语言中的按位运算符中的取反操作的具体步骤
- 单循环链表各种操作的C语言实现
- 对链表各种操作的实现(C语言)
- C:C语言实现的链表及其各种链表操作