二进制八进制十进制十六进制之间转换
发布时间:2018-11-07 23:11:49
作者:ynkulusi3
各进制之间相互转换,弄个脚本跑下终归是方便些。
#!/usr/bin/python27
# -*- coding: utf-8 -*-
import os,sys,time
reload(sys)
sys.setdefaultencoding('utf-8')
if os.path.exists("./colour.py") == False:
print "颜色插件colour.py不存在,请确认!"
sys.exit(0)
else:
from colour import bcolors
# 获取用户输入进制数(可输入2/8/10/16进制,2/8/16进制需要带0b/0o/0x)
while True:
try:
data = input("输入需要转换的数值[2/8/16进制需要+0b/0o/0x.|0退出!]:")
#except SyntaxError:
except Exception:
print bcolors.WARNING+"输入数据是不符合规范的进制数,请重新输入!"+bcolors.ENDC
continue
if data == 0:
print bcolors.LIGHT_OKGREEN+"退出程序"+bcolors.ENDC
sys.exit(0)
else:
print bcolors.OKBLUE+"转换为十进制:%s" % int(data)+bcolors.ENDC
print bcolors.OKBLUE+"转换为二进制:%s" % bin(data)+bcolors.ENDC
print(bcolors.OKBLUE+"转换为八进制:%s" % oct(data)+bcolors.ENDC)
print(bcolors.OKBLUE+"转换为十六进制:%s" % hex(data)+bcolors.ENDC)
time.sleep(1)
下面把颜色代码也放上吧
#!/usr/bin/python27
# -*- coding: UTF-8 -*-
class bcolors:
HEADER = '\033[95m'
LIGHT_HEADER = '\033[1;95m'
OKBLUE = '\033[94m'
LIGHT_OKBLUE = '\033[1;94m'
OKGREEN = '\033[92m'
LIGHT_OKGREEN = '\033[1;92m'
WARNING = '\033[93m'
LIGHT_WARNING = '\033[1;93m'
FAIL = '\033[91m'
LIGHT_FAIL = '\033[1;91m'
GRAY = '\033[1;30m'
PURPLE = '\033[35m'
PINK = '\033[1;35m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
FLASH = '\033[5m'
#print bcolors.WARNING + "警告的颜色字体?" + bcolors.ENDC
分类:python
评论数:1
阅读数:788
-
2019-10-08 09:27:191python3版本的,bin,oct,hex只能对int进行转换,所以有点改动。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os,sys,re,time
#reload(sys)
#sys.setdefaultencoding('utf-8')
if os.path.exists("./colour.py") == False:
print("颜色插件colour.py不存在,请确认!")
sys.exit(0)
else:
from colour import bcolors
# 获取用户输入进制数(可输入2/8/10/16进制,2/8/16进制需要带0b/0o/0x)
while True:
try:
data = input("输入需要转换的数值[2/8/16进制需要+0b/0o/0x.|0退出!]:")
#except SyntaxError:
except Exception:
print(bcolors.WARNING+"输入数据是不符合规范的进制数,请重新输入!"+bcolors.ENDC)
continue
if data == "0":
print(bcolors.LIGHT_OKGREEN+"退出程序"+bcolors.ENDC)
sys.exit(0)
else:
#print(bcolors.OKBLUE+"转换为十进制:%s" % int(data)+bcolors.ENDC)
#if re.search('^0b',data):
if re.match('0b',data):
intdata = int(data,base=2)
elif re.match('0o',data):
intdata = int(data,base=8)
elif re.match('0x',data):
intdata = int(data,base=16)
else:
intdata = int(data)
print(bcolors.OKBLUE+"转换为十进制:%s" % intdata+bcolors.ENDC)
print(bcolors.OKBLUE+"转换为二进制:%s" % bin(intdata)+bcolors.ENDC)
print(bcolors.OKBLUE+"转换为八进制:%s" % oct(intdata)+bcolors.ENDC)
print(bcolors.OKBLUE+"转换为十六进制:%s" % hex(intdata)+bcolors.ENDC)
time.sleep(1)