最近加Python群的時(shí)候看到一個(gè)驗(yàn)證——群號(hào)用負(fù)7進(jìn)制如何表示,我看了一愣,忽然想起來(lái)進(jìn)制確實(shí)也可以是負(fù)的只不過我們的工作學(xué)習(xí)中很少涉及,故此寫了個(gè)程序計(jì)算負(fù)進(jìn)制數(shù)的轉(zhuǎn)換,值得一提的是python語(yǔ)法的設(shè)計(jì)上與傳統(tǒng)的C/Java/C++不同,
整除的時(shí)候所求得的商? C/C++/Java 是向零取整(負(fù)數(shù)向上、正數(shù)向下取整),Python 是下取整,詳細(xì)代碼見如下:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import math
# 將數(shù)num從base_conver進(jìn)制轉(zhuǎn)換為十進(jìn)制(包括負(fù)進(jìn)制)
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("驗(yàn)證成功" if count == num else "驗(yàn)證失敗")
print("轉(zhuǎn)換為十進(jìn)制數(shù)為: %s" % result)
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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