一.操作符分类
1.算数操作符:+ - * / %
2.移位操作符:<< >>
3.位操作符:& | ʌ
4.赋值操作符:= += -= *= /= %= <<= >>= &= |= ʌ=
5.单目操作符:! ++ -- & * + - ~ sizeof (类型)
6.关系操作符:> >= < <= == !=
7.逻辑操作符:&& ||
8.条件操作符:? :
9.逗号操作符: ,
10.下标引用操作符: []
11.函数调用操作符:( )
12.结构成员访问操作符:→ .
二.二进制和进制转换
1.进制的引出
二进制、八进制、十进制、十六进制是数值的不同表示形式。
注意:
八进制的表示形式会在数字前加0
十六进制的表示形式会在数字前加0X
2.不同进制的数字表示
(1) 10进制的123
123=1*10∧2+2*10∧1+3*10∧0
其中10是十进制数字的权重
10进制是由0-9的数字组成
(2) 2进制的1111
1111=1*2∧3+1*2∧2+1*2∧1+1*2∧0=15
其中2是二进制数字的权重
二进制的1111可以化成十进制的15
二进制是由0和1组成
(3) 8进制的17
17=1*8∧1+7*8∧0=15
其中8是八进制数字的权重
八进制的17可以化成十进制的15
八进制是由0-7组成
(4)16进制是由0 1 2 3 4 5 6 7 8 9 a b c d e f
3.不同进制之间的转换
(1) 十进制转为二进制
125÷2=62……1
62÷2=31……0
31÷2=15……1
15÷2= 7……1
7÷2=3……1
3÷2=1……1
1÷2=0……1
将算出的余数从下至上写下来:1111101
综上所述:十进制数字125化为二进制数字为1111101
(2) 二进制化为八进制
二进制:01 101 011
八进制:1 5 3
转化过程中应该从右向左,3个为一组转化,剩余的最后转化。(二进制中的101为八进制的5,二进制中的011为八进制的3,二进制中的01为八进制的1。)
规则:
八进制的0→二进制的0
八进制的1→二进制的1
八进制的2→二进制的10
八进制的3→二进制的11
八进制的4→二进制的100
八进制的5→二进制的101
八进制的6→二进制的110
八进制的7→二进制的111
三.原码、反码、补码
1.概念的引出
当我们要把一个数转化为二进制时,整数二进制有三种表示形式,分别为:原码、反码、补码。
2.有符号整数的三种表示方法都是由符号位和数值为两部分组成。二进制序列中,最高的一位为符号位,其余为数值位。(符号位存放0为正,存放1为负数。)
eg.
signed int a=10;
int 占用4个字节,32个bit位,则第一位为符号位,其余为数值位。
总结:对于无符号整形(unsigned int )来说仅仅可以表示≥0的数字,也就是说无符号整形均为数值位。
3.(1) 正整数(无符号整数)的原码、反码、补码均相同。
负整数的原码、反码、补码各不相同。
(2) 原码:直接将已知的数值转化为正确的正负形式的二进制数字
反码:原码符号位的数字不变,其他位依次取反(0变成1,1变成0)
补码:反码加一
eg.
int a=-10;
原码:100000000000000000000000000001010
反码:111111111111111111111111111110101
补码:111111111111111111111111111110110
解释:因为为int 类型所以-10为4个字节,共32个bit位。