软件测试之进制转换

一、进制转换

  1、数制的概念

      数制也称计数制,是用一组固定的符号和统一的规则来表示数值的方法。

  2、常见的进制

    十进制:是以10为基数的计数体制简称十进制系统

        特点:1、系数:0,1,2,3,4,5,6,7,8,9

           2、规律:逢十进一, 9+1=10

           3、权:基数的幂,即10的幂 

分析:十进制数 X 转 M 进制,方法是:从 X 开始循环除以 M ,记下余数,整数商作为新的 X 继续除以 M ,直到 X=0 为止。然后倒序取余数即可。 

    二进制:是用0和1两个数码来表示的数

        特点:1、基数为2

           2、规律:逢二进一,借位规则是借一当二

           3、权:基数的幂,即2的幂

           分析:N进制转10进制的方法     

            

    十六进制:以16为基数的计数体制简称十六进制

         特点:1、系数:0,1,2,3,4,5,6,7,8,9和A,B,C,D,F

            2、规律:逢十六进一

    八进制:以8为基数的计数体制简称八进制

        特点:1、系统:0,1,2,3,4,5,6,7

           2、规律:逢八进一

2、十进制转换任意进制

   

# coding:utf-8


import sys
def main():
decimal = eval(input("请输入十进制转换二进制数: "))
base = eval(input("请输入基础: "))
decimalToNBaseByNormal(decimal, base)
decToNBaseByRecursion(decimal, base)

def decimalToNBaseByNormal(decimalVar, base):
tempList = []
temp = decimalVar
i = 0
while (temp > 0):
ord = temp % base
if (ord > 9):
ord = chr(65 + (ord - 10))
tempList.append(ord)
temp = int(temp / base)
i = i + 1
tempList.reverse();
#print(tempList)
binary = ""
for j in range(len(tempList)):
binary = binary + str(tempList[j]);
print("十进制数是: %d 转换的进制数是: %d 结果是: %s"%(decimalVar, base, binary))

def decToNBaseByRecursion(dec, base):
if (dec == 0):
return
decToNBaseByRecursion(int(dec/base), base)
ord = dec % base
if (ord > 9):
ord = chr(65 + (ord - 10))
sys.stdout.write(str(ord))

if __name__ == '__main__':
main()

 

posted @ 2018-09-27 17:12  kellen-fang  阅读(318)  评论(0)    收藏  举报