精华内容
下载资源
问答
  • 我们可以使用python的内置方法 bindec=10print bin(dec)输出0b1010python 中二进制以ob开头推荐:《python视频教程》2、十进制转八进制(oct)我们再看看十进制转化为八进制,使用方法oct(dec)dec=10print oct(dec)...

    5e5cd2ff94838307.jpg

    python如何进行进制转换

    1、十进制转二进制(bin)

    首先我们看看怎么把一个十进制转化成二进制,我们可以使用python的内置方法 bindec=10

    print bin(dec)

    输出0b1010

    python 中二进制以ob开头

    推荐:《python视频教程》

    2、十进制转八进制(oct)

    我们再看看十进制转化为八进制,使用方法oct(dec)dec=10

    print oct(dec)

    输出012

    3、十进制转16进制(hex)

    然后十进制转化16进制,同样使用python的内置方法进行hex(dec)dec=10

    print hex(dec)

    输出16进制0xa

    4、二进制转10进制dec=10

    print str(int(bin(dec), 2))

    输出10

    5、八进制转二进制

    同理八进制转化成二进制方法dec=10

    print str(int(oct(dec), 8))

    输出10

    6、16进制转10进制

    最后我们看看16进制转化成10进制dec=10

    print str(int(hex(dec).upper(), 16))

    更多Python教程,请关注PHP中文网!

    以上就是python如何进行进制转换的详细内容,更多请关注Gxlcms其它相关文章!

    本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

    本文系统来源:php中文网

    展开全文
  • 在计算机进行数据交换时,常常会有一个进制转换的过程,有时候数据过于庞大,为了方便存储管理,计算机会使用十六进制存储数据,Python一般采用int类型是十进制,作为硬件行业采用Python处理二进制、十六进制数据...


    在计算机进行数据交换时,常常会有一个进制转换的过程,有时候数据过于庞大,为了方便存储管理,计算机会使用十六进制存储数据,Python一般采用int类型是十进制,作为硬件行业采用Python处理二进制、十六进制数据成为必然。

    一、pyhton 进制转换

    1.1 十进制转为二、八、十六进制

    方法一:函数直转

    十进制转二进制:bin(10) --> '0b1010' tpye:是字符串类型 0b:表示2进制
    十进制转八进制:oct(10) --> '0o12'   tpye:是字符串类型 0o:表示8进制
    十进制转十六进制:hex(10) --> '0xa'    tpye:是字符串类型 0x:表示16进制
    

    方法二:Format格式

    >>> '{:b}'.format(9)   --> '1001'
    >>> '{:o}'.format(9)   --> '11'
    >>> '{:x}'.format(10)  --> 'a'
    

    两种方式会影响到打印,但是python还是可以识别出已转化的数据。

    1.2 二、八、十六进制转为十进制

    方法一:int()函数

    int('0b1010',2) --> 10 或者 int('1010',2) --> 10  
    int('0o12',8)   --> 10 或者 int('12',8)   --> 10  
    int('0xa',16)   --> 10 或者 int('a',16)   --> 10
    

    方法二:eval函数

    >>> eval('1111')       -->1111
    >>> eval('0b1111')     -->15
    >>> eval('0o1111')     -->585
    >>> eval('0x1111')     -->4369
    

    (x,y)括号中x是需要转换的数值type必须是str字符串类型,y是当前进制数

    1.3 将十进制转换为固定长度的多进制类型

    方法一:Format

    >>> '{:08b}'.format(9)     -->'00001001'
    >>> '{:06o}'.format(9)     -->'000011'
    >>> '{:06x}'.format(9)     -->'000009'
    备注:'{:08b}'.format(9) # :b表示转换为二进制,08表示高位用0补够8位
    

    方法二:str.zfill

    >>> a =bin(5)[2:]
    >>> print(a)               -->101
    >>> c = str.zfill(a,8)
    >>> print(c)               -->00000101
    
    >>> a =oct(9)[2:]
    >>> print(a)               -->11
    >>> c = str.zfill(a,8)
    >>> print(c)               -->00000011
    
    >>> a =hex(20)[2:]#去掉前面0b
    >>> print(a)               -->14
    >>> a =hex(20)
    >>> print(a)               -->'0x14'
    >>> str.zfill(a,8)         -->'00000x14'
    

    二、Python二进制单比特操作

    硬件中对于二进制数据的单比特操作是很常见的,verilog中也将每一比特单独的信号线作为区分,可以单比特调用。Python中虽然二进制数据也区分比特,但是获取更改某一比特却没有直接函数,参考文档【3】编写读取、调用函数。

    得到某个字节中某一位(Bit)的值

    :param byte: 待取值的字节值

    :param index: 待读取位的序号,从右向左0开始,0-7为一个完整字节的8个位

    :returns: 返回读取该位的值,0或1

    def get_bit_val(byte, index):
        if byte & (1 << index):
    		return 1
    	else:
    		return 0
    

    更改某个字节中某一位(Bit)的值

    :param byte: 准备更改的字节原值

    :param index: 待更改位的序号,从右向左0开始,0-7为一个完整字节的8个位

    :param val: 目标位预更改的值,0或1

    :returns: 返回更改后字节的值

    def set_bit_val(byte, index, val):
    	if val:
    		return byte | (1 << index)
    	else:
    		return byte & ~(1 << index)
    

    参考文档

    【1】用Python实现进制转换,这一篇教程就够了

    【2】python–>二进制的用法

    【3】python获取二进制bit位_Python读字节某一位的值,设置某一位的值,二进制位操作…

    展开全文
  • 如何在Python中将十六进制字符串转换为int? 我可能将其设置为“ 0xffff ”或“ ffff ”。

    如何在Python中将十六进制字符串转换为int?

    我可能将其设置为“ 0xffff ”或“ ffff ”。


    #1楼

    在上述Dan的答案中加上:如果为int()函数提供了十六进制字符串,则必须将基数指定为16,否则它不会认为您给了它有效的值。 对于字符串中不包含的十六进制数字,无需指定基数16。

    print int(0xdeadbeef) # valid
    
    myHex = "0xdeadbeef"
    print int(myHex) # invalid, raises ValueError
    print int(myHex , 16) # valid
    

    #2楼

    加上“ 0x”前缀,您也可以使用eval函数

    例如

    >>a='0xff'
    >>eval(a)
    255
    

    #3楼

    格式化程序选项'%x'%对我来说似乎也可以在赋值语句中使用。 (假设Python 3.0及更高版本)

    a = int('0x100', 16)
    print(a)   #256
    print('%x' % a) #100
    b = a
    print(b) #256
    c = '%x' % a
    print(c) #100
    

    #4楼

    int(hexString, 16)可以解决问题,并且可以使用和不使用0x前缀:

    >>> int("a", 16)
    10
    >>> int("0xa",16)
    10
    

    #5楼

    对于任何给定的字符串s:

    int(s, 16)
    

    #6楼

    如果没有 0x前缀,则需要显式指定基数,否则无法告诉:

    x = int("deadbeef", 16)
    

    使用 0x前缀,Python可以自动区分十六进制和十进制。

    >>> print int("0xdeadbeef", 0)
    3735928559
    >>> print int("10", 0)
    10
    

    (您必须0指定为基数,才能调用此前缀猜测行为;省略第二个参数意味着假定基数为10。)


    #7楼

    最坏的方法:

    >>> def hex_to_int(x):
        return eval("0x" + x)
    
    >>> hex_to_int("c0ffee")
    12648430
    

    请不要这样做!

    在Python中使用eval是不好的做法吗?


    #8楼

    在Python 2.7中, int('deadbeef',10)似乎不起作用。

    以下对我有用:

    >>a = int('deadbeef',16)
    >>float(a)
    3735928559.0
    

    #9楼

    在Python中将十六进制字符串转换为int

    我可能将其"0xffff""0xffff"或仅仅是"ffff"

    要将字符串转换为int,请将字符串与要转换的基数一起传递给int

    两个字符串都可以通过以下方式进行转换:

    >>> string_1 = "0xffff"
    >>> string_2 = "ffff"
    >>> int(string_1, 16)
    65535
    >>> int(string_2, 16)
    65535
    

    int推断

    如果传递0作为基数,则int将从字符串中的前缀推断基数。

    >>> int(string_1, 0)
    65535
    

    如果没有十六进制前缀0x ,则int没有足够的信息可用来猜测:

    >>> int(string_2, 0)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: invalid literal for int() with base 0: 'ffff'
    

    文字:

    如果您要输入源代码或解释器,Python将为您进行转换:

    >>> integer = 0xffff
    >>> integer
    65535
    

    这不适用于ffff因为Python会认为您正在尝试编写合法的Python名称:

    >>> integer = ffff
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'ffff' is not defined
    

    Python数字以数字字符开头,而Python名称不能以数字字符开头。


    #10楼

    ast.literal_eval (这很安全,与eval不同):

    ast.literal_eval("0xffff")
    

    演示:

    >>> import ast
    >>> ast.literal_eval("0xffff")
    65535
    >>> 
    

    #11楼

    如果您使用的是python解释器,则只需键入0x(您的十六进制值),解释器就会自动为您转换。

    >>> 0xffff
    
    65535
    

    #12楼

    处理十六进制,八进制,二进制,整数和浮点数

    使用标准前缀(即0x,0b,0和0o),此函数会将任何合适的字符串转换为数字。 我在这里回答了这个问题: https : //stackoverflow.com/a/58997070/2464381,但这是必需的功能。

    def to_number(n):
        ''' Convert any number representation to a number 
        This covers: float, decimal, hex, and octal numbers.
        '''
    
        try:
            return int(str(n), 0)
        except:
            try:
                # python 3 doesn't accept "010" as a valid octal.  You must use the
                # '0o' prefix
                return int('0o' + n, 0)
            except:
                return float(n)
    
    展开全文
  • Python-十进制转二进制 ... sum_int += int(i) * 2 ** t t -= 1 print('转换成的十进制数为:%d' % sum_int) Python-二进制转十进制 input_str = input("请输入待转十进制:") dec_list = [] n = int(input_st

    Python-十进制转二进制

    input_str = input("请输入待转二进制:")
    
    t = len(input_str) - 1
    sum_int = 0
    for i in input_str:
        sum_int += int(i) * 2 ** t
    
        t -= 1
    
    print('转换成的十进制数为:%d' % sum_int)
    

    Python-二进制转十进制

    input_str = input("请输入待转十进制:")
    dec_list = []
    
    n = int(input_str)
    while True:
        if n != 1:
            t = n % 2
            dec_list.append(t)
            n //= 2
        elif n == 1:
            dec_list.append(1)
            dec_list.reverse()
            break
            
    end_list = [str(f) for f in dec_list]
    num = int(''.join(end_list))
    print('转换后的二进制数是:%d' % num)
    
    展开全文
  • 2、用python内置函数bin()实现 一、用栈来实现10进制2进制 # 用函数实现十进制与二进制的转换 def tenTotwo(number): #定义栈 s = [] binstring = '' while number > 0: #余数进栈 rem = num...
  • 除了常用的十进制表示法,Python 也支持二进制、八进制和十六进制表示法。这些只是表示方法不同,但是它们表示的含义是一样的,如二进制中的 11 和十进制数中的 3 是一样的。1. Python进制表示法如十进制中的 100...
  • 主要给大家总结了python实现各进制转换的相关资料,其中包括字符串与十六进制转换、内置函数hex()与进制互转等相关内容,需要的朋友可以参考借鉴,下面来一起看看吧。
  • python中八进制Syntax to convert octal value to an integer (decimal format), 将八进制值转换为整数(十进制格式)的语法, int(oct_value, 8) Here, 这里, oct_value should contain the valid octal ...
  • 初学python,现在要读一个二进制文件,查找doc只发现 file提供了一个read和write函数,而且读写的都是字符串,如果只是读写char等一个字节的还行,要想读写如int,double等多字节数 据就不方便了。在网上查到一篇贴子...
  • Python-十进制转十六进制 input_str = input("请输入待转十进制数:") deal_list = [] if input_str.isdecimal(): input_int = int(input_str) while True: if input_int != 0: n = input_int % 16 deal_list....
  • Python-十进制转八进制 input_str = input("请输入待转十进制数:") hex_list = [] if input_str.isdecimal(): input_int = int(input_str) while True: if input_int != 0: n = input_int % 8 hex_list....
  • 2进制是以0b开头的: 例如: 0b11 则表示十进制的3 8进制是以0开头的: 例如: 011则表示十进制的9  16进制是以0x开头的: 例如: 0x11则表示十进制的17 -----------------------------------------------------------...
  • Python实现十进制和二进制、八进制、十六进制的相互转换1. 前言2. 实现思想2.1 十进制转换为其他进制2.2 其他进制转换为十进制3. 参考资料 1. 前言 此文方便后期的复习,如果有问题,欢迎批评指正。 2. 实现思想 2.1...
  • python 将16进制转化为2进制

    千次阅读 2019-01-24 16:09:00
    >>> x='123abc' >>> b=bin(int(x,16))[2:] >>> print(b) 100100011101010111100 转载于:https://www.cnblogs.com/sea-stream/p/10315063.html
  • 这是从网上搜索的一篇也的还可以的Python进制转换,经过验证可以使用。下面贴出它的实现代码: #!/usr/bin/env python # -*- coding: utf-8 -*- # 2/10/16 base trans. wrote by srcdog on 20th, April, 2009 # ld ...
  • Python3 16进制转10进制

    千次阅读 2020-05-30 17:07:58
    Python3自带了函数直接将其他进制转化为10进制,以下分别为调库和自己实现2种方式。 2.1 直接调库 #输入为string value = int(string,16) 2.2 自己实现 def conv(string): my_dict = {"A":10, "B":11, "C":12, "D...
  • 利用python进行二进制、十进制、十六进制相互转换和二进制移位操作1 二进制与十进制相互转换2 十六进制与十进制相互转换3 二进制与十六进制的相互转换4 高位补零5 二进制移位 1 二进制与十进制相互转换 通过python...
  • Python中的进制转换

    千次阅读 2019-03-20 14:00:18
    Python中的进制转换 我们已经知道各个进制的符号 b(二进制) o(八进制) d(十进制) x(十六进制) 十进制转为其他进制 这里,我们将十进制数10转换为其他进制。 bin(),oct(),hex()返回值均为字符串而且会带有0b,0o,0o...
  • Python解析二进制文件

    万次阅读 2018-08-23 21:15:23
    使用python解析二进制文件时,需要了解python与C语言对应的格式,如下:  例如使用C语言保存的二进制格式,结构体为: struct Points { int x; int y; int z; }; struct Obj_info{ int id; int x1; int ...
  • Python-八进制转二进制 input_str = input('请输入待转八进制数:') list_num = [] list_octal = [] lists = [] t = 0 def octal_binary(): """用于八进制转二进制""" for i in input_str: list_num.append(i...
  • 使用Python内置函数:bin()、oct()、int()、hex()可实现进制转换。 先看Python官方文档中对这几个内置函数的描述: bin(x) Convert an integer number to a binary string. The result is a valid Python expression...
  • 本文实例讲述了Python中不同进制的语法及转换方法。分享给大家供大家参考,具体如下: 不同进制的书写方式 ① 八进制(Octal) 0o377 ② 十六进制(Hex) 0xFF ③ 二进制(Binary) 0b11111111 不同进制之间的转换 Python...
  • 本文实例讲述了python基本进制转换的方法。分享给大家供大家参考。具体如下: # Parsing string with base into a number is easy num = int(str, radix) # We have to write our own function for outputting to ...
  • 文章目录python中的进制转换(长期更新)@[toc]1、内置函数转换bin,oct,int,hex1.1 10进制2,8,16进制字符串1.2 2,8,16进制字符串到10进制整数1.3 各进制互转 1、内置函数转换bin,oct,int,hex Python中存在内置...
  • python3 的进制转换

    2020-05-03 15:59:44
    python进制转换
  • python中各进制的表示及其转换

    千次阅读 2018-11-29 20:20:46
    【题目】python中各进制的表示及其转换 参考链接:https://blog.csdn.net/weixin_40717096/article/details/80199257   一、 python中各个进制的符号 b:二进制;o:八进制;d:十进制;x:十六进制  在python中...
  • Python实现十进制转换二进制(递归实现)
  • 设定以utf-8无BOM格式保存的文件foo.txt的内容如下:abc你好现在我们以byte为单位读取文件内容,并显示每个byte的16进制和10进制表示。if __name__ == '__main__':f=open('foo.txt' ,'rb')f.seek(0,0)while True:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 105,274
精华内容 42,109
关键字:

intpython显示2进制

python 订阅