原码,反码,补码。
整数的原码为32位比特位的二进制序列,最高位为符号位表示正负,其中0为正数,1为负数,比如0的原码为00000000000000000000000000000000,-1的原码为10000000000000000000000000000001.
正整数的原反补三码相同。
负整数的反码为符号位不变,其他位按位取反,-1的反码为11111111111111111111111111111110.
负整数的补码为反码+1。如-1的补码为11111111111111111111111111111111.
整数在内存中以补码的形式存储。%d输出的是原码的值。
--------------------------------------------------------------------------------------------
~ -------单目操作符,表示对操作数按位取反。
如上图,0的二进制原码和补码为00000000000000000000000000000000,按位取反以后变成11111111111111111111111111111111,这是-1的补码。
-4的原码为10000000....00000100,反码为11111111...11111011,补码为11111111...11111100,按位取反以后变为00000000...00000011,这是3的补码。
A的ASCII码为65,二进制原码和补码为00000000...01000001,按位取反以后变为11111111...10111110,将其-1再取反,得到原码为10000000...01000010,这是-66.
-----------------------------------------------------------------------------------------------------------------
++,--
前置时,先自增(自减),再将所得值代入式子。
后置时,先将本值代入式子,然后再自增(自减)。
----------------------------------------------------------------------------------------------------
(类型)-----强制类型转换
int a=(int ) 3.14
这一表达式,如果没有(int)时,会出现一个warning,提示将double类型数据转换成了int类型数据,丢失了精度。
--------------------------------------------------------------------------------------------------------
关系操作符:
>,>=,<,<=,!=,==
注意不要写成数学的格式
--------------------------------------------------------------------------------------------------------
逻辑操作符
&&,||
------------------------------------------------------------------------------------------------------
条件操作符(三目操作符)
?:
exp1? exp2:exp3
如果表达式1成立(非0),执行表达式2,如果表达式1不成立,执行表达式3;
表达式1的值为0则为不成立,非0则为成立
如上图,a的值为0,为假,不成立,执行表达式3 b=2+2;
---------------------------------------------------------------------------------------------------------
逗号表达式:逗号隔开的一串表达式
逗号表达式,从左向右依次计算,并将最后一个表达式的值作为最终结果。
----------------------------------------------------------------------------------
下标引用,函数调用和结构成员
[ ], ( ), . , ->
[ ]常见于数组下标,如arr[ 1],表示arr数组里面的第二个元素。
( int x ,int y)