05-04 进制复习

#一 进制的复习
‘’’
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)

‘’‘

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值