[解決済み] Pythonで符号付き整数と符号なし整数を変換する方法
2023-03-26 13:15:27
質問
例えば、次のような数字があるとします。
i = -6884376
.
これを符号なし変数として参照するにはどうしたらよいでしょうか?
次のような感じです。
(unsigned long)i
のようにC言語で記述します。
どのように解決するのですか?
仮定の話 :
- 2の補数表現を念頭に置いている;と。
-
によって
(unsigned long)
あなた というのは 符号なし 32 ビット整数です。
を追加するだけです。
2**32 (or 1 << 32)
を負の値に追加します。
例えば、-1 に適用します。
>>> -1
-1
>>> _ + 2**32
4294967295L
>>> bin(_)
'0b11111111111111111111111111111111'
仮定その1は、-1を1ビットの固まりと見なすことを意味し、仮定その2は、32個のビットを必要とすることを意味します。
あなたの隠された前提が何であるかは、あなた以外の誰も言うことができませんが。 たとえば、1の補数表現を念頭に置いているのであれば、その表現には
~
というプリフィックス演算子を適用する必要があります。 Python の整数は、無限に広い 2 の補数表現 (通常の 2 の補数のような、しかし無限の数の "sign bit" を持つ) を使っているかのように見せるために懸命に働きます。
また、プラットフォーム C コンパイラが行うことを複製するために
ctypes
モジュールを使用します。
>>> import ctypes
>>> ctypes.c_ulong(-1) # stuff Python's -1 into a C unsigned long
c_ulong(4294967295L)
>>> _.value
4294967295L
Cの
unsigned long
は、このサンプルを実行したボックス上ではたまたま4バイトでした。
関連
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] バイトを文字列に変換する
-
[解決済み] JavaScriptで文字列を整数に変換する方法は?
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] 異なる順序で同じ要素を持つ2つのJSONオブジェクトを等しく比較するには?
-
[解決済み] Pythonでランダムなファイル名を生成する最良の方法
-
[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?
-
[解決済み] Django filter queryset __in for *every* item in list
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PILからopenCVフォーマットへの変換
-
[解決済み] Spyderを仮想環境で動作させるには?
-
[解決済み] Pythonの要素別タプル演算(sumなど
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] tensorflowのCPUのみのインストールでダイナミックライブラリ 'cudart64_101.dll' を読み込めなかった
-
[解決済み] PyQtアプリケーションのスレッド化。QtスレッドとPythonスレッドのどちらを使うか?
-
[解決済み] Pythonによる一対のクロスプロダクト [重複] (英語)
-
[解決済み] pycharmがタブをスペースに自動変換する
-
[解決済み] Python 言語を決定するには?