我正在處理不同基數(base-10,base-8,base-16等)中的數字。我正在計算每個數字中的字符數。如何計算不同基數中數字的位數?
例
編號:
ABCDEF
位數:
我知道基於對數的方法,但我面臨的一些問題。
This Python script輸出,未能在3969號正確計算的位數了100萬。
我認爲使用對數的方法可能是相當緩慢的
鏈接:
This C program必須非常緩慢(如果我有一個非常大的數字?)。它也不能處理不同基地的數字(例如,基數爲16)。
不是this愚弄的人,因爲在OP問只有約基10
編輯:當然我可以計算一個字符串的長度,但什麼更吸引我,是否有可能進行沒有約定的字符串。我想知道的算法,可以幫助做到這一點只知道源基地和的基地轉換爲。
EDIT2:源基是基10和的要轉換爲可以是任何其他鹼基。
我們如何計算不同基數的數字位數?
如果我知道基數爲10的數字,如何計算轉換爲基數爲16(base-8等)的相同數字中的數字位數而不執行轉換?
注:一些Python或C代碼將不勝感激
只是一個想法,在給你寫一個完整的答案之前,應該像這樣的一個方法滿足你:找到所需的能力,例如16^n> your_number> 16^n,因爲那麼數字的數目應該是類似的n ... –
你問我們如何調試你的Python腳本嗎? – abarnert
@EmmanuelJay,我認爲任何足夠快的方法都適合。 – ForceBru