精华内容
下载资源
问答
  • Python-八进制二进制
    千次阅读
    2021-01-14 10:48:09

    Python-八进制转二进制

    input_str = input('请输入待转八进制数:')

    list_num = []

    list_octal = []

    lists = []

    t = 0

    def octal_binary():

    """用于八进制转二进制"""

    for i in input_str:

    list_num.append(i)

    # print(list_num)

    list_deal = [int(k) for k in list_num]

    # print(list_deal)

    list_num.clear()

    for j in list_deal:

    while True:

    if j != 1:

    n = str(j % 2)

    list_octal.append(n)

    j //= 2

    elif j == 1:

    list_octal.append('1')

    list_octal.reverse()

    if len(list_octal) % 3 == 0:

    pass

    elif len(list_octal) % 3 == 1:

    list_octal.insert(0, '0')

    list_octal.insert(1, '0')

    elif len(list_octal) % 3 == 2:

    list_octal.insert(0, '0')

    lists.extend(list_octal)

    list_octal.clear()

    break

    list_octal.reverse()

    num_str = int(''.join(lists))

    print("该八进制数转化为二进制数为:%d" % num_str)

    Python-二进制转八进制

    input_str = input('请输入待转二进制数:')

    initial_list = []

    once_deal_list = []

    second_deal_list = []

    l_int = len(input_str)

    y = 0

    r = 2

    k = 0

    def cut_str():

    """字符串切片"""

    i = 0

    while i < l_int:

    once_deal_list.append(initial_list[i:(i + 3)])

    i += 3

    def repair_str():

    """不足3位进行补零"""

    for t in input_str:

    initial_list.append(int(t))

    if input_str.isdecimal():

    print('数字验证通过')

    if l_int % 3 == 0:

    cut_str()

    elif l_int % 3 == 2:

    initial_list.insert(0, 0)

    cut_str()

    else:

    initial_list.insert(0, 0)

    initial_list.insert(1, 0)

    cut_str()

    else:

    print('验证失败请重新输入')

    return

    def octonary():

    """转换为八进制"""

    repair_str()

    global k

    global r

    for g in once_deal_list:

    for j in g:

    k += int(j) * 2 ** r

    r -= 1

    second_deal_list.append(k)

    r = 2

    k = 0

    # print('转换成的八进制数为:', end='')

    # for n in second_deal_list:

    # print(n, end='')

    # print

    end_list = [str(h) for h in second_deal_list]

    end_num = int(''.join(end_list))

    print('转换成的八进制数为:%d' % end_num)

    octonary()

    原文链接:https://blog.csdn.net/YIGAOYU/article/details/110226748

    更多相关内容
  • 有时需要二进制数超过 52 位的 bin2dec 函数。 代码简短而简单。 输入是一个字符串,即“1000”,输出是一个 1x1 的双精度值。
  • 使用Python内置函数:bin()、oct()、int()、hex()可实现进制转换。 先看Python官方文档中对这几个内置函数的描述: bin(x) Convert an integer number to a binary string. The result is a valid Python expression...
  • 把任意一个十进制数转换为二进制八进制十六进制数的c++源代码
  • 输入:表示位序列的行向量输出:一个行向量包含落入 [0,7] 的整数序列,这是八进制等效于给定的二进制序列。
  • 这个是个c的小程序,适合初学者。内容是将一个八进制转换成二进制
  • 一,十进制(decimal system)转换函数说明 1,十进制转二进制 decbin() 函数,如下实例 echo decbin(12); //输出 1100 echo decbin(26); //输出 11010 decbin ... 2,十进制转八进制 decoct() 函数 echo decoct(15)
  • input()函数-控制输入的进制数 格式化符号 %o八进制 %x十六进制 %d整数 PS:不要问为什么没有二进制的格式化符号,问了就是不知道。 s=int(input(),16) #输入十六进制并将其转换为十进制 s=int(input(),10) #...
  • 八位二进制转三位十进制电路multisim源文件,十进制数字用数码管显示,multisim13及以上版本的软件可以正常打开仿真。
  • C语言-顺序栈实现十进制转换为二进制-八进制-十六进制
  • 主要介绍了python十进制和二进制的转换方法(含浮点数),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • java_十进制数转换为二进制,八进制,十六进制数的算法
  • 实验目的:1、掌握栈的逻辑结构及存储结构;...完成数字十进制到八进制的转换。 输入示例: 请输入需转换的的个数: 3 请输入需转换的: 28,58,190 输出示例: 转换结果为: 1、 34 2、 72 3、 276
  • 二进制: 将每个余数倒着输出来,怎样实现,s=num%2+s;每次得到的数都进入到等号右边的s中,那么第二个余数就是num%2,加在s的前面,这就是字符串的拼接,切记不能交换...假如给一个17这样的十进制数,将其转换成十六进

    二进制:

    将每个余数倒着输出来,怎样实现,s=num%2+s;每次得到的数都进入到等号右边的s中,那么第二个余数就是num%2,加在s的前面,这就是字符串的拼接,切记不能交换两者的位置。

    八进制:

    同二进制一样

    十六进制:

    十六进制不外乎就是写一个数组:

    char[] arr = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };

    假如给一个17这样的十进制数,将其转换成十六进制,只需要数17,最后第十七次落在数组上的字符加上数的次数。笔者定义的y就是最后落在数组上的位置。

    package com.kaifamiao.day13CDSN;
    
    import java.util.Scanner;
    
    public class JinZhi {
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            System.out.println("请你输入一个十进制数:");
            long n = sc.nextLong();
            JinZhi jz=new JinZhi();
            System.out.println("二进制数为:"+jz.twoWay(n));
            System.out.println("---------------------------------");
            jz.eightWay(n);
            System.out.println("八进制数为:"+jz.eightWay(n));
            System.out.println("---------------------------------");
            System.out.println("十六进制为:"+jz.sixteen(n));
    
        }
        //二进制
        public String twoWay(long num){
            String s="";
            while (num!=0){
                s=num%2+s;
                num=num/2;
            }
            return s;
    
        }
        //八进制
        public String eightWay(long num){
            String s="";
            while (num!=0){
                s=num%8+s;
                num=num/8;
            }
            return s;
        }//十六进制
        public String sixteen(long num){
            String v="";
            char s=0;
            long y;
            char[] arr = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
            while (num!=0){
                y=num%16;
                num=num/16;
                s=arr[(int)y];
                v=s+v;
            }
            return v;
        }
    }
    

    展开全文
  • 基于C实现、十六进制数转十进制数的算法,最终封装到一个函数里面,使用方便!!!
  • python十进制转二进制 python中十进制转二进制使用 bin() 函数。 bin() 返回一个整数 int 或者长整数 long int 的二进制表示。 下面是使用示例: >>>bin(10) '0b1010' >>> bin(20) '0b10100' 补充:十进制8进制和...
  • C语言实现二进制八进制和十六进制转换 二进制转换成十进制 再将十进制转换成R进制
  • 1.1.二进制转十进制: 函数:bindec(string $binary_string) @param $binary_string 参数表示所要转换的二进制字符串。 @return 返回与$binary_string参数所表示的二进制数的十进制数等价值。 函数说明: bindec()...
  • 八进制数转换为二进制或十六进制 CS入门课程的课程项目,使用过程编程来创建八进制数转换器。 指示: 将代码复制并粘贴到您喜欢的文本编辑器中,并另存为NumberConverter.java 打开命令/终端,导航到保存Number...
  • 这篇文章主要介绍了使用Python内置函数:bin()、oct()、int()、hex()可实现进制转换的一些用法,需要的朋友可以参考下 使用Python内置函数:bin()、oct()、int()、hex()可实现进制转换。 先看Python官方文档中对这几...
  • 在计算机中常用到十进制数、进制数、八进制数、十六进制数等,下面就这几种在计算机中常用的数制来介绍一下.1.十进制数我们平时数数采用的是十进制数,这种数据是由十个不同的数字0、1、2、3、4、5、6、7、8、9任意...

    中计数采用了多种记数制,比如:十进制,六十进制(六十秒为一分,六十分为一小时,即基数为60,运算规则是逢六十进一),…….在计算机中常用到十进制数、二进制数、八进制数、十六进制数等,下面就这几种在计算机中常用的数制来介绍一下.

    1.十进制数

    我们平时数数采用的是十进制数,这种数据是由十个不同的数字0、1、2、3、4、5、6、7、8、9任意组合构成,其特点是逢十进一.

    任何一个十进制数均可拆分成由各位数字与其对应的权的乘积的总和.例如:

    ?

    ?

    ?

    这里的10为基数,各位数对应的权是以10为基数的整数次幂.为了和其它的数制区别开来,我们在十进制数的外面加括号,且在其右下方加注10.

    2.二进制数

    在计算机中,由于其物理特性(只有两种状态:有电、无电)的原因,所以在计算机的物理设备中获取、存储、传递、加工信息时只能采用二进制数.二进制数是由两个数字0、1任意组合构成的,其特点是逢二进一.例如:1001,这里不读一千零一,而是读作:一零零一或幺零零幺.为了与其它的数制的数区别开来,我们在二进制数的外面加括号,且在其右下方加注2,或者在其后标B.

    任何一个二进制数亦可拆分成由各位数字与其对应的权的乘积的总和.其整数部分的权由低向高依次是:1、2、4、8、16、32、64、128、……,其小数部分的权由高向低依次是:0.5、0.25、0.125、0.0625、…….

    二进制数也有其运算规则:

    加法:0+0=0?0+1=1?1+0=1?1+1=10

    乘法:0×0=0?0×1=0?1×0=0?1×1=1

    二进制数与十进制数如何转换:

    (1) 二进制数—→十进制数

    对于较小的二进制数:

    对于较大的二进制数:

    方法1:各位上的数乘权求和?例如:

    (101101)2=1×25+0×24+1×23+1×22+0×21+1×20=45

    (1100.1101)2=1×23+1×22+0×21+0×20+1×2-1+1×2-2+0×2-3+1×2-4=12.8125

    方法2:任何一个二进制数可转化成若干个100…0?的数相加的总和?例如:

    (101101)2=(100000)2+(1000)2+(100)2+(1)2

    而这种100…00形式的二进制数与十进制数有如下关联:1后有n个0,则这个二进数所对应的十进制数为2n.

    所以:(101101)2=(100000)2+(1000)2+(100)2+(1)2=25+23+22+20=45

    (2)十进制数—→二进制数

    整数部分:整除以2取余法.例如:75

    75/2=37…1?37/2=18…1?18/2=9…0?9/2=4…1?4/2=2…0?2/2=1…0?1/2=0…1

    将得到的一系列的余数倒过来书写就得到该数所对应的二进制数(1001011)2

    小数部分:乘以2取整法.例如:0.7

    0.7×2=1.4…1?0.4×2=0.8…0?0.8×2=1.6…1?0.6×2=1.2…1?0.2×2=0.4…0

    3.八进制数

    八进制数是由0、1、2、3、4、5、6、7、8任意组合构成的,其特点是逢八进一.为了与其它的数制的数区别开来,我们在八进制数的外面加括号,且在其右下方加注8,或者在其后标Q.

    八进制数的基数是8,任何一个八进制数亦可拆分成由各位数字与其对应的权的乘积的总和.其整数部分的权由低向高依次是:1、8、82、83、84、85、……,其小数部分的权由高向低依次是:8-1、8-2、8-3、8-4、…….

    八进制数与其它数制的转换:

    (1)与十进制数的互换

    八进制数—→十进制数

    十进制数—→八进制数

    方法均与二进制数与十进制数互换的方法一样.

    (2)与二进制数的互换

    八进制数—→二进制数

    把八进制数的每一位改成等值的三位二进制数,即“一位变三位”.

    例如:56.103Q

    ?5?6?.?1?0?3

    ? ↓?↓?↓?↓?↓?

    ? 101?110?001?000?011

    所以(56.103)8=(101110.001000011)2

    二进制数—→八进制数

    把二进制数从小数点开始向两边每三位为一段(不足补0),每段改成等值的一位八进制数即可,即“三位变一位”.

    4.十六进制数

    十六进制数是由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F任意组合构成的,其特点是逢十六进一.为了与其它的数制的数区别开来,我们在十六进制数的外面加括号,且在其右下方加注16,或者在其后标H.

    十六进制数的基数是16,任何一个十六进制数亦可拆分成由各位数字与其对应的权的乘积的总和.其整数部分的权由低向高依次是:1、16、162、163、164、165、……,其小数部分的权由高向低依次是:16-1、16-2、16-3、16-4、…….

    十六进制数与其它数制的转换:

    (1)与十进制数的互换

    十六进制数—→十进制数

    十进制数—→十六进制数

    方法均与二进制数与十进制数互换的方法一样.

    (2)与二进制数的互换

    十六进制数—→二进制数

    把十六进制数的每一位改成等值的四位二进制数,即“一位变四位”.

    例如:(3AD.B8)16

    ?3?A?D.?B?8

    ? ↓?↓?↓?↓?↓?

    ? 0011?1010?1101?1011?1000

    所以(3AD.B8)16=(1110101101.10111)2

    二进制数—→十六进制数

    把二进制数从小数点开始向两边每四位为一段(不足补0),每段改成等值的一位十六进制数即可,即“四位变一位”.

    下表中列出了一些数的二、八、十和十六进制形式

    二进制数 八进制数 十进制数 十六进制数 二进制数 八进制数 十进制数 十六进制数

    0000 0 0 0 1001 11 9 9

    0001 1 1 1 1010 12 10 A

    0010 2 2 2 1011 13 11 B

    0011 3 3 3 1100 14 12 C

    0100 4 4 4 1101 15 13 D

    0101 5 5 5 1110 16 14 E

    0110 6 6 6 1111 17 15 F

    0111 7 7 7 10000 20 16 10

    1000 10 8 8 10001 21 17 11

    ? 二、计算机中数的表示

    在计算机中所有的数据、指令以及一些符号等都是用特定的二进制代码表示的.

    ? 1.数值数据的表示

    我们把一个数在计算机内被表示的二进制形式称为机器数,该数称为这个机器数的真值.机器数有固定的位数,具体是多少位受到所用计算机的限制.机器数把其真值的符号数字化,通常是用规定的符号位(一般是最高位)取0或1来分别表示其值的正或负.例如:假设机器数为8位,则其最高位是符号位,那么在整数的表示情况下,对于00101110和10010011,其真值分别为十进制数+46和-19.

    机器数常采用原码和补码的形式作为其编码方式.

    (1)原码

    整数X的原码是指:其符号位的0或1表示X的正或负,其数值部分就是X的绝对值的二进制表示.通常用[X]原表示X的原码.

    例如:假设机器数的位数是8,那么:[+17]原=00010001?[-39]原=10100111

    注意:由于[+0]原=00000000,[-0]原=10000000,所以数0的原码不唯一,有“正零”和“负零”之分.

    (2)反码

    在反码的表示中,正数的表示方法与原码相同;负数的反码是把其原码除符号位以外的各位取反(即0变1,1变0).通常,用[X]反表示X的反码.

    例如:[+45]反=[+45]原=00101101?[-32]原=10100000?[-32]反=11011111

    (3)补码

    在补码的表示中,正数的表示方法与原码相同;负数的补码在在其反码的最低有效位上加1.通常用[X]补表示X的补码.

    例如:[+14]补=10100100?[-36]反=11011011?[-36]补=11011100

    注意1:数0的补码的表示是唯一的,即[0]补=[+0]补=[-0]补=00000000

    注意2:利用公式?[X]补+[±Y]补=[X±Y]补?可以把加法和减法统一成加法.(符号位和其它位上数一样运算,如果符号位上有进位,则把这个进位的1舍去不要,即不考虑“溢出”问题).

    例如:?X=6,Y=2?求X-Y

    ?[X]补=00000110?[-Y]补=11111110

    ? [X-Y]补=00000100

    另:机器数中采用定点或浮点数的方式来表示小数!(略)

    ? 2.ASCII码

    计算机除了能处理数值外还能处理字符(指字母A、B、…、Z、a、b、…、z,数字0、1、…、9,其它一些可打印显示的符号如:+、-、*、/、、…).在计算机内部,这些符号也得用二进制代码来表示,目前,在国际上广泛采用的是美国标准信息交换代码(American?Standard?Code?for?Information?Interechang),简称ASCII码.

    标准的ASCII码中共有128(27)个字符,所以标准的ASCII码采用7位二进制编码.因为其中的字符排列是有序的,其对应的ASCII码也是相连的,所以我们只需要记几个关键字符的ASCII码,其它可以推算.

    ‘0’——48?‘A’——65?‘a’——97

    注:标准的ASCII码能表示的字符较少,于是在其基础上又设计了一种扩

    解析看不懂?求助智能家教解答查看解答

    展开全文
  • 二进制转八进制算法为了把换算为二进制,将每一个八进制数字替换成表2-2中对应的三位。例如,八进制123换算成结果就是001010011:表2-2 二进制/八进制换算表为了将一个换算为八进制,只需将二进制串划分成每三个位一...

    二进制与八进制的互相转换和二进制与的转换类似,区别在于需要操作的是三位一组而不是四位。表2-2列出了二进制与八进制的等效表示。

    二进制转八进制算法

    为了把换算为二进制,将每一个八进制数字替换成表2-2中对应的三位。例如,八进制123换算成结果就是001010011:

    b4971db67fa43598a8daf6e72b156fa7.png

    表2-2 二进制/八进制换算表

    34154e75f80b2971f5a8925cf88f2e8d.png

    为了将一个换算为八进制,只需将二进制串划分成每三个位一组(如果需要的话,在前面补零),然后查表2-2,将三位一组的位串替换为相应的字即可。

    如果需要将八进制数换算为,只需将八进制数换算为二进制,然后再换算为十六进制即可。

    八进制化为十进制:

    例:将八进制数12转换成

    9c724136cafb83e9f2c631d573130b7c.png

    八进制化为二进制:

    规则:按照顺序,每1位改写成等值的3位,次序不变。

    例: (17.36)8 = (001 111 .011 110)2 = (1111.01111)2

    八进制化为

    先将八进制化为二进制,再将二进制化为十六进制。

    例:(712)8 = (1110 0101 0)2 = (1CA)16

    转换为八进制

    二进制化为八进制:

    部份从最低有效位开始,以3位一组,最高有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的整数。

    小数部份从最高有效位开始,以3位一组,最低有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的小数。

    例:(11001111.01111)2 = (011 001 111.011 110)2 = (317.36)8

    十六进制化为八进制:

    先用1化4方法,将化为二进制;再用3并1方法,将二进制化为8制。

    例: (1CA)16 = (111001010)2 = (712)8

    说明:小数点前的高位零和小数点后的低位零可以去除。

    化八进制

    方法1:采用除8取余法。

    例:将115转化为

    8| 115…… 3

    8| 14 …… 6

    8| 1 …… 1

    结果:(115)10 = (163)8

    方法2:先采用十进制化二进制的方法,再将二进制数化为八进制数

    例:(115)10 = (1110011)2 = (163)8

    展开全文
  • 二进制整数转八进制算法二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐。八进制整数转二进制算法八进制整数转换为二进制整数时,每...
  • 本文主要介绍的是VB的十进制,八进制,十六进制,二进制相互转换大全
  • 将十进制数转换成二进制八进制、十六进制算法 递归算法: //将数字a成b进制数 public static void anInt(int a, int b) { if (a / b != 0) { an(a / b, b); } if (a % b >= 10) { System.out.print(...
  • 二进制八进制、十进制、十六进制之间转换详解,较为详细。
  • 主要介绍了C语言用栈实现十进制转换为二进制的方法,结合实例形式分析了C语言栈的定义及进制转换使用技巧,需要的朋友可以参考下
  • 即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,得到的数就是一位八位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。如果向左(向右)...
  • 进制转换二进制转八进制Prerequisite: Number systems 先决条件: 数字系统 To convert binary numbers into octal numbers, we first have to understand the ... 要将二进制数转换为八进制数 ,我们首先必须...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 263,719
精华内容 105,487
关键字:

二进制数转八进制数