文章目录
-
- 1. 前言
- 2. 源码展示
- 3. 演示用例
1. 前言
主要目的是解决不同类型数字(十进制、十六进制、二进制)相互计算的问题,计算十进制、十六进制、二进制的大小,并以可读形式显示KB、MB、GB的大小。
特点:随机输入表达式,不同的进制混用,输出多个进制转换结果,可输出不同的存储单元值。
2. 源码展示
calculator.py
from ast import expr k = 4 def alin_4(s): # 每四位显示,高位补零 # 针对二进制和十六进制 r = [] s = '0'*(k - len(s) % k) s if len(s) % k != 0 else s # print("s", s) for i in range(0, len(s) // k, 1): # print(s[-k*(i 1):len(s)-k*i]) r.append(s[-k*(i 1):len(s)-k*i]) r.reverse() return '_'.join(r) while True: result = int(eval(input())) BIN = '0b_' alin_4(bin(result)[2:]) HEX = '0x_'
+ alin_4
(
hex
(result
)
[
2
:
]
)
print
(
"DEC:%.3f\nBIN:%s\nHEX:%s\nKB:%.3f\nMB:%.3f\nGB:%.3f\n"
%
(result
, BIN
, HEX
, result
/
1024
, result
/
1024
/
1024
, result
/
1024
/
1024
/
1024
)
)
3. 演示用例
Ctrl+C
结束输入。
PS E:\Python_prj> python -u "e:\Python_prj\calculator.py"
1 + 0x2 + 0b0011
DEC:6.000
BIN:0b_0110
HEX:0x_0006
KB:0.006
MB:0.000
GB:0.000
2 + 4 + 8 + 16 + 32 + 64
DEC:126.000
BIN:0b_0111_1110
HEX:0x_007e
KB:0.123
MB:0.000
GB:0.000
0xffff + 987654 + 0xFFFFFFFFFFFFFFFFFF
DEC:4722366482869646262272.000
BIN:0b_0001_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0001_0000_0001_0010_0000_0100
HEX:0x_0100_0000_0000_0010_1204
KB:4611686018427388928.000
MB:4503599627370497.000
GB:4398046511104.001