• python进制转换


    一. 计算机硬件基本认知

    cpu: 中央处理器 相当于人的大脑.运算中心.控制中心

    内存: 临时存储数据. 优点:读取速度快 缺点:容量小,造价高,断电即消失

    硬盘:长期存储数据: 优点:容量大,造价相对低,断电不消失 .缺点:读取速度慢

    操作系统:统一管理计算机软硬件资源的程序

    二.计算机文件大小单位

    b = bit  位(比特)
    B = Byte 字节
    
    1Byte = 8 bit   #一个字节等于8位  可以简写成 1B = 8b
    1KB = 1024B
    1MB = 1024KB
    1GB = 1024MB
    1TB = 1024GB
    1PB = 1024TB
    1EB = 1024PB

    三.进制转换

     二进制:由2个数字组成,有0 和 1                 例:  0b101
    八进制:由8个数字组成,有0,1,2,3,4,5,6,7        例:  0o127
    十进制:有10个数字组成,有0,1,2,3,4,5,6,7,8,9   例:  250
    十六进制:有16个数字组成,有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f(字母大小写都可以,分别代表10,11,12,13,14,15) 例:0xff  0Xff  0XFF

    3.1二进制转化为十进制

    #例:    0b10100101  
    运算:1* 2^0 + 0* 2^1 + 1* 2^2 + 0* 2^3 + 0* 2^4 + 1* 2^5 + 0* 2^6 + 1* 2^7= 
    1 + 0 + 4 + 0 + 0 + 32 + 0 + 128 = 165

    3.2 八进制转化成十进制

    #例:    0o127
    运算:7*8^0 + 2*8^1 + 1*8^2 = 7+16+64 = 87

    3.3 十六进制转化为十进制

    #例:    0xff
    运算:15*16^0 + 15*16^1 = 255

    3.4 十进制转化为八进制

    426 => 0b110101010  
    运算过程:   用426除以2,得出的结果再去不停地除以2,
                直到除完最后的结果小于2停止,
                在把每个阶段求得的余数从下到上依次拼接完毕即可

    4.5 十进制转化为八进制

    426 => 0o652
    运算过程:   用426除以8,得出的结果再去不停地除以8,
                直到除完最后的结果小于8停止,
                在把每个阶段求得的余数从下到上依次拼接完毕即可

    4.6 十进制转化成十六进制

    运算过程:   用426除以16,得出的结果再去不停地除以16,
                直到除完最后的结果小于16停止,
                在把每个阶段求得的余数从下到上依次拼接完毕即可

    4.7 二进制与八进制转化

    二进制与八进制对应关系:
    八进制  二进制
    0        000
    1        001
    2        010
    3        011
    4        100
    5        101
    6        110
    7        111
    例:1010100101
    八进制:从右向左 3位一隔开 不够三位用0补位 变成:
    001 010 100 101
    0o   1    2   4   5

    4.8 二进制与十六进制转化

    十六进制  二进制
    0          0000
    1          0001
    2          0010
    3          0011
    4          0100
    5          0101
    6          0110
    7          0111
    8          1000
    9          1001
    a          1010
    b          1011
    c          1100
    d          1101
    e          1110
    f          1111
    
    例:1010100101
    十六进制:从右向左 4位一隔开 不够四位用0补位 变成:
    0010 1010 0101 
    0x2a5

    4.9 八进制与十六进制的转化

    先转换成二进制 再去对应转换 
    比如:0x2a5 转换成 1010100101 再转8进制 0o1245

    四 .原码反码补码

    # 1.原码 或 补码 都是二进制数据  
        原码: 二进制的表现形式
        反码: 二进制码0变1,1变0叫做反码,[原码][补码]之间的转换形式.(首位符号位不取反)
        补码: 二进制的存储形式     
    
        数据用[补码]形式存储
        数据用[原码]形式显示
        [原码] 和 [补码] 可以通过[反码]互相转化,互为取反加1
    
    # 2.提出补码的原因
        补码的提出用于表达一个数的正负(可实现计算机的减法操作)
        计算机默认只会做加法,实现减法用负号: 5+(-3) => 5-3
        乘法除法:是通过左移和右移 << >> 来实现
    
    # 3.[原码]形式的正负关系:
        原码特点: 第一位是1
               00000000 1  表达数字正1
               10000000 1  表达数字负1
           
    # 4.[补码]形式的正负关系:
        补码特点: 高位都是1
               00000000 1  表达数字正1
               11111111 1  表达数字负1
    
    # 5.运算顺序:
        补码 -> 原码 -> 最后人们看到的数
        ***进制转换的时候需要先把内存存储的补码拿出来变成原码在进行转换输出***
    
        转换规律:
            如果是一个正数:  原码 = 反码 = 补码
            如果是一个负数:  原码 与 反码 之间 ,  互为取反加1 
                           原码 = 补码取反加1   给补码求原码
                           补码 = 原码取反加1   给原码求补码
  • 相关阅读:
    克服 iOS HTML5 音频的局限
    oracle__删除重复记录__三种方法及总结(转载百度文库)
    Oracle 字符集
    无法通过网页进入em
    Ubuntu 12.04(32位)安装Oracle 11g(32位)全过程以及几乎所有问题的解决办法
    正则表达式30分钟入门教程
    linux下安装jdk
    QTP相关书籍
    假的数论gcd,真的记忆化搜索(Codeforce 1070- A. Find a Number)
    搜索基础_HDU1312_dfs_递归+stack实现+bfs_queue实现
  • 原文地址:https://www.cnblogs.com/whc6/p/13998844.html
Copyright © 2020-2023  润新知