質問編集履歴

2

追記

2022/10/25 16:25

投稿

Plasma
Plasma

スコア17

test CHANGED
File without changes
test CHANGED
@@ -41,3 +41,22 @@
41
41
  なぜバイトで返すと書かれているのに
42
42
  「3.5(byte)」などではなく「28」と出力されるのでしょうか?
43
43
 
44
+ ### 追記
45
+
46
+ ```Python
47
+
48
+ import sys
49
+
50
+ print(sys.getsizeof(1<<32))
51
+ ```
52
+ この実行結果が「32」になるため
53
+ 「32bitか」→「28は28bitか」と勘違いしたのかもしれません。
54
+
55
+ `1<<32`は33桁の2進数になるため、メモリサイズが4byte分拡張されて
56
+ `24byte` + `4byte` + `4byte` = `32byte`
57
+ になるのなら辻褄が合いますね。
58
+
59
+ あとは`24byte`の`PyVarObject`が理解できればいいのですが
60
+ これはどういうものだと解釈すれば良いでしょうか?
61
+ オブジェクトを生成する際に、全ての型の元になっている型を
62
+ 宣言せずに自動的に呼び出しているということでしょうか?

1

文法の修正

2022/10/25 11:55

投稿

Plasma
Plasma

スコア17

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 質問
2
2
 
3
- Pythonでは、使えるint型は桁数が無制限だと聞きました。
3
+ Pythonでは、int型は使える桁数が無制限だと聞きました。
4
4
  しかし、メモリによってその上限が変わるため
5
5
  自分の使っているiPad Proではどこまでできるかを調べようと思いました。
6
6
  以下が実際にギリギリアプリがクラッシュせずに出力できた結果です。