最近加Python群的時候看到一個驗證——群號用負7進制如何表示,我看了一愣,忽然想起來進制確實也可以是負的只不過我們的工作學習中很少涉及,故此寫了個程序計算負進制數的轉換,值得一提的是python語法的設計上與傳統的C/Java/C++不同,
整除的時候所求得的商? C/C++/Java 是向零取整(負數向上、正數向下取整),Python 是下取整,詳細代碼見如下:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import math
# 將數num從base_conver進制轉換為十進制(包括負進制)
def num_base_conversion(num, base_conver):
temp = []
if num == 0:
temp.append(0)
else:
while num != 0:
k = int(num % base_conver)
num = math.floor(num / base_conver)
if k < 0:
k = k - base_conver
num = num + 1
temp.append(k)
return temp
if __name__ == '__main__':
num = 195132894
base_conver = -7
temp = num_base_conversion(num, base_conver)
print(temp)
count = 0
result = ''
for i in range(len(temp)):
count = count + int(temp[i] * math.pow(base_conver, i))
result = result + str(temp[len(temp) - i - 1])
print("驗證成功" if count == num else "驗證失敗")
print("轉換為十進制數為: %s" % result)
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
