Python中不同进制互相转换(二进制、八进制、十进制和十六进制)_python

在我的印象里面进制互相转换确实是很常见的问题,所以在Python中,自然也少不了把下面这些代码收为util。

这是从网上搜索的一篇也的还可以的Python进制转换,经过验证可以使用。下面贴出它的实现代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 2/10/16 base trans. wrote by srcdog on 20th, April, 2009
# ld elements in base 2, 10, 16. 

import os,sys 

# global definition
# base = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F]
base = [str(x) for x in range(10)] + [ chr(x) for x in range(ord('A'),ord('A')+6)] 

# bin2dec
# 二进制 to 十进制: int(str,n=10)
def bin2dec(string_num):
  return str(int(string_num, 2)) 

# hex2dec
# 十六进制 to 十进制
def hex2dec(string_num):
  return str(int(string_num.upper(), 16)) 

# dec2bin
# 十进制 to 二进制: bin()
def dec2bin(string_num):
  num = int(string_num)
  mid = []
  while True:
    if num == 0: break
    num,rem = divmod(num, 2)
    mid.append(base[rem]) 

  return ''.join([str(x) for x in mid[::-1]]) 

# dec2hex
# 十进制 to 八进制: oct()
# 十进制 to 十六进制: hex()
def dec2hex(string_num):
  num = int(string_num)
  mid = []
  while True:
    if num == 0: break
    num,rem = divmod(num, 16)
    mid.append(base[rem]) 

  return ''.join([str(x) for x in mid[::-1]]) 

# hex2tobin
# 十六进制 to 二进制: bin(int(str,16))
def hex2bin(string_num):
  return dec2bin(hex2dec(string_num.upper())) 

# bin2hex
# 二进制 to 十六进制: hex(int(str,2))
def bin2hex(string_num):
  return dec2hex(bin2dec(string_num))

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索python
, 二进制
, 十六进制
, 十进制
八进制
二进制八进制十六进制、二进制转八进制、二进制转八进制算法、二进制转换八进制、二进制转换为八进制,以便于您获取更多的相关知识。

时间: 2024-11-08 22:53:47

Python中不同进制互相转换(二进制、八进制、十进制和十六进制)_python的相关文章

Python中不同进制的语法及转换方法分析_python

本文实例讲述了Python中不同进制的语法及转换方法.分享给大家供大家参考,具体如下: 不同进制的书写方式 ① 八进制(Octal) 0o377 ② 十六进制(Hex) 0xFF ③ 二进制(Binary) 0b11111111 不同进制之间的转换 Python提供了三个内置的函数,可以用来在不同进制间做转换. >>> oct(255), hex(255), bin(255) ('0o377', '0xff', '0b11111111') 还可以使用int函数,把字符串转成数值 >

Python中使用PyQt把网页转换成PDF操作代码实例_python

代码很简单,功能也很简单 =w= webpage2pdf #!/usr/bin/env python3 import sys try: from PyQt4 import QtWebKit from PyQt4.QtCore import QUrl from PyQt4.QtGui import QApplication, QPrinter except ImportError: from PySide import QtWebKit from PySide.QtCore import QUrl

Python进制转换(二进制/八进制/十进制/十六进制)

Python 进制转换 二进制 八进制 十进制 十六进制 作者:方倍工作室 地址:http://www.cnblogs.com/txw1958/p/python3-scale.html    全局定义 base = [str(x) for x in range(10)] + [ chr(x) for x in range(ord('A'),ord('A')+6)]   二进制 to 十进制 : int(str,n=10)  def bin2dec(string_num): return str(

java中进制的转换,Byte与16进制的转换方法_java

java中对于进制的转换有很多方式,其中对于常见的基本的二进制 八进制 十进制 十六进制等的转换有对于的包装类实现,不需要通过二外的算法来进行实现,具体如下: 首先关于最简单的二进制转换的方法有: 十进制转成十六进制: String Integer.toHexString(int i) 十进制转成八进制 String Integer.toOctalString(int i) 十进制转成二进制  String Integer.toBinaryString(int i) 十六进制转成十进制 Inte

JS中的进制转换以及作用_javascript技巧

js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现: 运行下面代码 //10进制转为16进制 (10).toString(16) // =>"a" //8进制转为16进制 (012).toString(16) // =>"a" //16进制转为10进制 (0x16).toString(10) // =>"22" //16进制转为8进制 (0x16).toSt

浅议Oracle中的进制转换

oracle|转换 作者: Eygle 出处: BLOG 进制转换是开发中经常需要用到的,本文简单介绍几种常用的进制转化方法. 一 16进制转换为10进制 可以通过to_number函数实现 SQL> select to_number('19f','xxx') from dual; TO_NUMBER('19F','XXX') ---------------------- 415 SQL> select to_number('f','xx') from dual; TO_NUMBER('F',

10进制 16进制-Extjs中怎样将页面上的10进制数字转换成16进制的保存到数据库

问题描述 Extjs中怎样将页面上的10进制数字转换成16进制的保存到数据库 Extjs中怎样将页面上的10进制数字转换成16进制的保存到数据库 急啊 解决方案 var a=101; a=a.toString(16); alert(a);//用Ext.ajax发送a到服务器保存 http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.Ajax 解决方案二: 1990(10)= 124 ×16+6 =(7×16+12)×16+6--乘出来= =7×16×16+1

查找字符串数组中16进制数,并转换【原创】

  查找字符串数组中16进制数,并转换 #include <stdio.h> #include <stdlib.h> #include <string.h> void string_to_hex(unsigned char* input, int input_len, unsigned char* output, int output_len) { unsigned char tmp; int i; if (input_len > output_len*2) re

PB中编写10进制到其他进制的转换函数

有时候我们要用到10进制与其他进制之间的转换,如10-16进制的转换.在此我编写了一个函数,可以方便的把10进制转换到其他进制. 函数为changejz(long shi,int how )其中参数shi为要转换的10进制数据,how为要转换到的进制类型,取值为2,8,16三个,整个函数的返回值为string型. 大家都知道,要把10进制转换到诸如8进制,首先得转换到2进制,再由2进制转换到8进制,所以函数的第一步为:把输入的数据都由10进制转换到2进制. 2进制 8进制 10进制 16进制 1