网站建设地带,个人介绍网页设计报告,无组件上传网站,画册设计要求操作符中有⼀些操作符和⼆进制有关系#xff0c;我们先学习了⼀下⼆进制的和进制转换的知识。
1.原码、反码和补码。 有符号整数的三种表⽰⽅法均有符号位和数值位两部分#xff0c;
2进制序列中#xff0c;最⾼位的1位是被当做符号位#xff0c;剩余的都是数值位。 符号…操作符中有⼀些操作符和⼆进制有关系我们先学习了⼀下⼆进制的和进制转换的知识。
1.原码、反码和补码。 有符号整数的三种表⽰⽅法均有符号位和数值位两部分
2进制序列中最⾼位的1位是被当做符号位剩余的都是数值位。 符号位都是⽤0表⽰“正”⽤1表⽰“负”。 正整数的原、反、补码都相同。 负整数的三种表⽰⽅法各不相同。 原码直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。 反码将原码的符号位不变其他位依次按位取反就可以得到反码。 补码反码1就得到补码。 补码得到原码也是可以使⽤取反1的操作。 对于整形来说数据存放内存中其实存放的是补码。
举个例子
int a3;
//原码00000000000000000000000000000011
//反码00000000000000000000000000000110;
//补码01111111111111111111111111111001
2.移位操作符
左移操作符右移操作符
首先移位操作符的操作数只能够是整数
左移操作符的使用规则左边抛弃右边补0
int a10;
int ba1;
//00000000000000000000000000001010------a对应的二进制表示
//00000000000000000000000000010100------a左移一位
右移操作符分为两种算术右移和逻辑右移
算术右移右边丢弃左边补上符号位
逻辑右移右边丢弃左边补上0
C语言没有明确规定是哪一种具体由不同的编译器自己决定
3.位操作符
按位与2个都是1时候取1其余取0------a1可以得到a的最低位
按位或|只要有一个1就取1其余取0
按位异或^相同时候是0不同时候是1
按位取反~
int a0;
//~a-1;
//00000000000000000000000000000000-------a的补码
//11111111111111111111111111111111-------a的按位取反
//11111111111111111111111111111110-------得到对应的反码
//10000000000000000000000000000001-------这是原码也就是-1
他们的操作数必须是整数
多个异或操作符连续使用是支持交换律的
4.单目操作符 - -- sizeof (类型
5.逗号表达式
从左向右依次执行取的是最右边的值
6.下标引用操作符
arr[9]10;
[ ] 就是下标引用操作符他的2个操作数是arr和9
7.函数调用操作符
int a10;test();//这里调用函数()就是函数调用操作符
8.结构体成员访问操作符
通过.操作符进行也就是结构体名.成员名--------直接访问
通过结构体指针也就是结构体名-成员名---------间接访问
p-name就是通过结构体成员访问操作符进行访问对应的结构体成员