#一 进制的复习
‘’’
1、常见应用例题:统计一个整数二进制中1的个数,若整数位负数,则统计其补码中1的个数
‘’‘
’‘’
基础知识:
1、进制介绍
进制类型 组成数字 代码格式
二进制 0 & 1 0b(二进制 binary)1010
八进制 0~7 0o(octonary 八进制)1247
十进制 0~10 2578
十六进制 0~10 abcdef(不分大小写 表示11~16)
0x(hex十六进制)ff
**2、单位介绍**
来源: 计算机是为了存储数据,处理数据;
数据存储于 内存中,内存是存储数据的介质;
抽象内存:内存有一个开关,两种状态,开启 =1.关闭=0
把8个开关放在一间房子里,可称这间房子为’一
个字节‘
一个开关代表的是一位,每个房间都有门牌
号,当做’地址‘,
把无数个房间罗列起来组成摩天大厦,可
以把大厦称作 ---内存
注: 一般一个数字占4个字节,即32bit
单位关系:
1bit 表示二进制中的一位
8bit = 1个字节
1024 字节=1k
1024k=1M
1024M=1G
1024G=1T
3、进制转换
十 转 二 :除2取余法
二 转 十 :0000 0101 等于 1*2**2+0*2**0+1*2**1=6
二 转 八 :一转三位,二进制的三位表示八进制的一位
eg:0010 0101 -
1*2**2+0*2**0+1*2**1=6 0*2**0+0*2**1+1*2**2=4
八进制为 0o46
二转十六 :一转四位 ,二进制的四位表示十六进
制的一位,具体算法同上
八转二 :对八进制的每一位数字分别除2取余数,不
足三位高位补0,依次排列即为二进制;
十六转二;同上,对十进制的每一位除2取余,不足四位高位补0;
注:每三位取一位 和每四位取一位时,高位不足补0;
②进制转换函数
bin() 二进制化
oct() 八进制化
int() 十进制化
hex() 十六进制化
4、原码、反码、补码介绍
(1).来源:
计算机是使用一定的编码方式进行存储,原码。反码、补码
是是计算机存储一个具体数字的编码方式,具体使用方式如下:
①整数的原码,反码,补码都相同;
②负数的反码是在原码的基础上保持符号位不变,其余相反;
负数的补码是反码的基础上加1
eg:
+1 -1
原码 0000 0001 1000 0001
反码 0000 0001 1111 1110
补码 0000 0001 1111 1111
(2)存储数据:
①计算机先开辟空间,找到字节,再存储数据;
②存储数据时最高位是标识符号位,0标识正数,1表示负数
eg:0000 0000 0000 0000 0000 0000 0001 0100 正数
1000 0000 0000 0000 0000 0000 0000 0110 负数
③计算机不能以原码方式存储数据:
证明如下:
1的原码 0000 0000 0000 0000 0000 0000 0000 0001
-1原码 1000 0000 0000 0000 0000 0000 0000 0001
上两数相加为:1000 0000 0000 0000 0000 0000 0000 0010
即为-2,但实际因为0,所以计算机不能以原码存储数据
注:内存中数据是以补码形式存储的!
5、位运算
中文名 Python表示 规则
与 a & b 同时为1则为1,其余为0
或 a | b 同时为0则为0,其余为1
异或 a ^ b 相同为0,不同为1
取反 ~a 1变0,0变1
左移 a<<b a*(2**b)
右移 a>>b a/(2**b)
‘’‘