正数的补码反码原码一样
负数的反码是除去符号位,其它位取反
负数的补码是反码+1
补码求补码得到原码
补码求反码再求补码得到原码
无论正数负数,在内存中都是以补码的形式存储的
1.进制
进制也就是进位制,是人们规定的一种进位方法.对于任何一种进制—x进制,就表示某一位置上的数运算时就是逢x进一位.
十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一
计算机中采用二进制.十六进制只是计算机常用的一种编码方式
二进制的四位相当于十六进制的一位
二进制的三位相当于八进制的一位
N进制转换为十进制
秘诀:当前位上的数乘以基数(N)的位数减一次方
0x17十六进制
017八进制
17十进制
0b17二进制
比特=bit,是二进制位的意思
B=Byte是字节的意思,一字节=8bit
1M说的是1Mbite
下载速度也就是1024/8=128kb/s
一兆比特=1M bit,1B=8bit,所以1兆比特=1/8 MB
2.位运算
参与运算的量按二进制进行运算
按位与&, 按位或|, 按位非~, 按位异或^(脱字符), 左移<<, 右移>>
<<左移一位相当于乘2, >>右移一位相当于除以2
一个字节(Byte)表示8个二进制位(bit)
一个字节所能表示的数的范围是0~255
按位与作用之一就是对特定位数据进行清0
异或:整形变量相异或(对应为相同则为0不同则为1)
用异或可以交换两个变量的值
移位中的左移末尾补0
逻辑移位:不考虑正负号
算术移位:考虑正负号。
右移运算对于负数,分为逻辑右移(高位补0),算数右移(高位补1)
1. int a=5;// 4个字节,32个二进制位
原码/补码:
0000 0000 0000 0000 0000 0000 0000 0101
原文地址:http://9217856.blog.51cto.com/9207856/1563743