19.对于正数:反码=源码=补码
负数:反码=除符号位以外各位取反=反码+1
20.位运算符:
1)位运算:是指二进制进行的运算。C语言由6个运算符,只能用于整型
& 按位与 :如果两个位进行&操作,同1则结果为1,有0结果为0
9&4
00001001
& 00000100
------------------
00000000
| 按位或 :有1则为1,都为0则为0
~ 按位取反 :1变0,0变1
~9
00001001
~
--------------------------
11110110
^ 按位异或 :相同为0,不同为1;
9^4
00001001
^00001000
00000001
>>右移位 :右移位,移出去的部分要舍弃,高位要补符号位
一个数右移n位,值等于原值除以2^n,结果是整数部分
8>>2==2
00000000000000000000000000001000
00000000000000000000000000000010
右移位不会改变一个数的政府向
<<左移位 :各二进制位全部左移n位,高位舍弃,地位补0.
技巧:向左移动n位,相当于原数*2^n
8<<2 ==32
00000000000000000000000000001000
00000000000000000000000000100000
注意:左移可能改变一个数的正负性
2)位运算技巧
A 任何数和1进行&操作,得到这个数的最低位
1001
&0001
0001
B.想把某一位置0
11111111
&11111011
------------------------
11111011
21. 变量地址获取及存储原理:
1)计算机分配内存是:从高地址向低地址分配,先定义的变量,分配的是高地址,后定义的变量,分配的是低地址。
2)变量的存储细节:低字节存放在地地址,高字节存在搞地址
3) 变量的地址:变量的首地址(变量在内存中占用的存储单元中地址最小的那个存储单元)
4)查看变量在内存中的每一个字节:
|
|