Pythonで数万桁の数字を扱っています。long 型は、これらの数値に対して計算を実行する際に美しく機能しますが、これらの数値の最上位桁に十分に高速な方法でアクセスすることはできません。数字に含まれる桁数が正確にはわからないことに注意してください。「最上位の桁」とは最上位の桁を指し、最下位の桁はモジュラスを使用してすばやくアクセスできます。
Python でこれらの数字にアクセスするには 2 つの方法が考えられますが、どちらも私の目的には遅すぎます。文字列に変換し、配列メソッドを介して数字にアクセスしようとしましたが、10,000 桁以上の場合、型変換が遅くなります。または、単純にビットをマスクして切り捨てることもできますが、これには long の桁数を知っている必要があります。long の桁数を見つけるには、カウンターとマスク テストのループが必要です。これは、文字列変換よりも確実に遅くなります。
ここの説明から、long 型には実際には bignum 配列が含まれているようです。long を格納する基になるデータ構造にアクセスしたり、基本型から long の桁数を確認したりする方法はありますか?
人々が興味を持っている場合は、ベンチマークの例を提供できます。