「 」演算子を使用せずに 2 つの整数を加算する核心に入りましょう。 これにはバイナリ操作が必要です。
通常の加算と同様に、バイナリを使用してこれにアプローチします。
- 通常と同じように、右から追加していきます: 1 1、0 1、1 0、0 0。
- 2 進数で作業しているため、合計が 2 に達したら、0 にリセットします (1 1 = 10 2 進数、桁上げで 0 になります)。
- すべてのビットに対してこれを繰り返します。これにより、今のところキャリーを無視した部分和が得られます。
XOR (^) ビット演算子は、この初期合計を完全に処理します。
- ビットが同じ場合、結果は 0 になります。ビットが異なる場合、結果は 1 になります。
これは、1 1 → 0 (キャリーあり)、0 1 または 1 0 → 1、および 0 0 → 0 のニーズと一致します。
さて、キャリーについて考えてみましょう。 AND (&) 演算子はそれらを見つけるのに役立ちます:
- 両方のビットが 1 の場合、結果は 1 (キャリー) になります。
キャリーを左にシフトするには、左ビット シフトを使用します。
アルゴリズム:
-
初期化:
-
sum = a ^ b
(キャリーなしの合計の XOR) -
carry = (a & b)
(およびキャリー用)
-
-
反復:
-
carry == 0
まで繰り返します:a = sum
b = carry (桁上げのための左ビットシフト)
-
例 (5 3):
-
初期値:
-
反復 1:
sum = 0101 ^ 0011 = 0110
-
carry = 0101 & 0011 = 0001
-
反復 2:
sum = 0110 ^ 0010 = 0100
-
carry = 0110 & 0010 = 0010
-
反復 3:
sum = 0100 ^ 00100 = 0000
-
carry = 0100 & 0100 = 0100
-
反復 4:
sum = 0000 ^ 1000 = 1000
carry = 0000 & 1000 = 0000
キャリーは 0 なので、最終的な合計は 1000 (8) です。
Python の無制限の整数は、負の数で問題を引き起こします。 左ビットシフトは無限の成長につながる可能性があります。 これを修正するには、固定サイズの整数 (例: 32 ビット) をシミュレートする必要があります。
32 ビット マスク (0xFFFFFFFF) を使用してビット数を制限します。
これにより、最後の 32 ビットのみが考慮されるようになり、無限の増大が防止されます。 また、必要に応じて、潜在的な負の結果を 32 ビットの 2 の補数表現に変換することで処理します。
このアプローチは、Python 内で 32 ビット整数演算を効果的にシミュレートし、無制限の整数と負の数の問題を解決します。 if a > MAX_INT
条件は、結果が 32 ビットの符号付き整数の範囲内に収まることを保証します。 -12 と -8 を使用した例は、この補正がどのように機能して -20 という予想される結果を生成するかを示しています。
私の名前は Jaimin Bariya です。何か役立つものを見つけたら、「いいね!」とコメントを付けて、github jaimin-bariya をフォローしてください
以上が2 つの整数の合計 - leetcode - Pythonの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Pythonを1日2時間学ぶだけで十分ですか?それはあなたの目標と学習方法に依存します。 1)明確な学習計画を策定し、2)適切な学習リソースと方法を選択します。3)実践的な実践とレビューとレビューと統合を練習および統合し、統合すると、この期間中にPythonの基本的な知識と高度な機能を徐々に習得できます。

Web開発におけるPythonの主要なアプリケーションには、DjangoおよびFlaskフレームワークの使用、API開発、データ分析と視覚化、機械学習とAI、およびパフォーマンスの最適化が含まれます。 1。DjangoandFlask Framework:Djangoは、複雑な用途の迅速な発展に適しており、Flaskは小規模または高度にカスタマイズされたプロジェクトに適しています。 2。API開発:フラスコまたはdjangorestFrameworkを使用して、Restfulapiを構築します。 3。データ分析と視覚化:Pythonを使用してデータを処理し、Webインターフェイスを介して表示します。 4。機械学習とAI:Pythonは、インテリジェントWebアプリケーションを構築するために使用されます。 5。パフォーマンスの最適化:非同期プログラミング、キャッシュ、コードを通じて最適化

Pythonは開発効率でCよりも優れていますが、Cは実行パフォーマンスが高くなっています。 1。Pythonの簡潔な構文とリッチライブラリは、開発効率を向上させます。 2.Cのコンピレーションタイプの特性とハードウェア制御により、実行パフォーマンスが向上します。選択を行うときは、プロジェクトのニーズに基づいて開発速度と実行効率を比較検討する必要があります。

Pythonの実際のアプリケーションには、データ分析、Web開発、人工知能、自動化が含まれます。 1)データ分析では、PythonはPandasとMatplotlibを使用してデータを処理および視覚化します。 2)Web開発では、DjangoおよびFlask FrameworksがWebアプリケーションの作成を簡素化します。 3)人工知能の分野では、TensorflowとPytorchがモデルの構築と訓練に使用されます。 4)自動化に関しては、ファイルのコピーなどのタスクにPythonスクリプトを使用できます。

Pythonは、データサイエンス、Web開発、自動化スクリプトフィールドで広く使用されています。 1)データサイエンスでは、PythonはNumpyやPandasなどのライブラリを介してデータ処理と分析を簡素化します。 2)Web開発では、DjangoおよびFlask Frameworksにより、開発者はアプリケーションを迅速に構築できます。 3)自動化されたスクリプトでは、Pythonのシンプルさと標準ライブラリが理想的になります。

Pythonの柔軟性は、マルチパラダイムサポートと動的タイプシステムに反映されていますが、使いやすさはシンプルな構文とリッチ標準ライブラリに由来しています。 1。柔軟性:オブジェクト指向、機能的および手続き的プログラミングをサポートし、動的タイプシステムは開発効率を向上させます。 2。使いやすさ:文法は自然言語に近く、標準的なライブラリは幅広い機能をカバーし、開発プロセスを簡素化します。

Pythonは、初心者から上級開発者までのすべてのニーズに適した、そのシンプルさとパワーに非常に好まれています。その汎用性は、次のことに反映されています。1)学習と使用が簡単、シンプルな構文。 2)Numpy、Pandasなどの豊富なライブラリとフレームワーク。 3)さまざまなオペレーティングシステムで実行できるクロスプラットフォームサポート。 4)作業効率を向上させるためのスクリプトおよび自動化タスクに適しています。

はい、1日2時間でPythonを学びます。 1.合理的な学習計画を作成します。2。適切な学習リソースを選択します。3。実践を通じて学んだ知識を統合します。これらの手順は、短時間でPythonをマスターするのに役立ちます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

メモ帳++7.3.1
使いやすく無料のコードエディター

WebStorm Mac版
便利なJavaScript開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
