問題タブ [32bit-64bit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
64-bit - 64 ビット/32 ビットの下位レベルの利点と欠点は何ですか?
64 ビットや 32 ビットという言葉をよく耳にすると思いますが、実際にはどういう意味なのでしょうか?
メモリアドレスのサイズと関係があると確信しています。64 ビット マシンでは、オブジェクトへの参照は 64 ビットです。でも、もう少し掘り下げたい…。
「64 ビット マシン」という言葉をよく耳にします。コンピューターのどの部分が実際にビット数に対応していますか? プロセッサー?オペレーティング·システム?
より大きなメモリアドレスを持つことの利点は何ですか?
さらに質問を追加することもできますが、簡潔な方がよいと思います。
みんなありがとう:D
64-bit - プロセッサ、OS : 32 ビット、64 ビット
私はプログラミングが初めてで、CS 以外のバックグラウンドを持っています (正式な学位はありません)。私は主に C# を使用して winforms をプログラミングしています。
私は32ビットと64ビットについて混乱しています...つまり、32ビットOS、32ビットプロセッサ、およびプログラムが最大メモリを持つことができるベースについて聞いたことがあります。プログラムの速度にどのように影響するか。頭に浮かび続ける多くの質問があります。
Computer Organization と Architecture の本を読んでみました。しかし、そこに書かれていることを理解するには私が愚かすぎるか、ライターは読者が CS のバックグラウンドを持っていると想定しています。
誰かがこれらのことを平易で簡単な英語で説明してくれるか、それを行う何かを教えてくれませんか.
編集: 32 ビット モードでは、最大 4GB のメモリにアクセスできます。64 ビット モードでは、はるかに多くのアクセスが可能になります。
BOUNTY : 以下の回答は本当に良いです....特にMartinによるものです。しかし、私は徹底的な説明を見ていますが、平易な簡単な英語です。
macos - Snow Leopard (OS X 10.6) の InputManager プラグイン
いろいろなところから相反する報告を受けています。Engadget のレビューでは、InputManager プラグインは完全に無視されている (アプリケーションが 32 ビット モードでロードされている場合は奇妙な動作を引き起こす) と書かれていますが、このメーリング リストのスレッドでは、32/64 ビットの互換性が適切であれば機能すると述べています。
だから私は2つの質問があります:
- Snow Leopard で InputManagers を使用することはできますか?
- はいの場合、Leopard と同じように機能しますか。いいえの場合、どのような回避策がありますか (1Password が修正に取り組んでいるようです)。
macos - Mac Pro 64 ビット アドレッシング カーネル
開発中のアプリと 64 ビット アドレス指定について疑問に思っています。Mac Pro で利用可能な 32 GB のうち約 12 GB を使用したいと考えています。
私のMac Pro(efi 32ビット)のSnow Leopardでは、カーネルは64ビットではありません。カーネルが 32 ビットしかない場合でも、アプリケーションごとに 4GB を超える RAM に対処できるかどうか疑問に思っています。
これは基本的に地図データ用で、セットは約 12 GB で、高速で実行したいのですが... ページのスワッピングはありません。
助けてくれてありがとう
あと...
algorithm - 64 ビット int を使用せずに 2 つの 32 ビット数を乗算する
次のアルゴリズムを使用して、32 ビット * 32 ビットの乗算を行っています。
a (32 ビット) と b (32 ビット) を両方とも符号付きで乗算するとします。
a = ah * 2^16 + al [ah - 上位 16 ビット、al - 下位 16 ビット]
b = bh * 2^16 + bl [bh - 上位 16 ビット、bl - 下位 16 ビット]
効果的に行っています
結果 = (al * bl) + (((ah * bl) + (al * bh)) * 2^16) + ((ah * bh) * 2 ^ 32) ~~~
私の質問、
これを行うためのより良い方法はありますか?
macos - 64ビットOS X 10.6でファットバイナリを32ビットにする適切な方法は?
ユーザーに「32 ビット モードと 64 ビット モードのどちらで実行しますか」と尋ねたところ、ユーザーは 32 ビットを選択したとします。この事実をオペレーティング システムに登録するにはどうすればよいですか? archコマンドを見てきましたが、バイナリをラップするスクリプトを書く必要はありません。これを行うにはplist-yの方法があると思いますが、ドキュメント(arch以外)が見つかりません。
windows - Windows 用の R の 64 ビット ビルドがないのはなぜですか?
R に 64 ビット Windows ビルド済みバイナリがないのはなぜですか?
msbuild - MS Build & Cruise Control - プロジェクト内の参照を 32 ビット バージョンから 64 ビット バージョンに置き換える
PDFファイルを作成するライブラリへの参照を持つプロジェクトを含むソリューションがあります。PDF ライブラリには、32 ビット版と 64 ビット版があります。開発中、プロジェクトは 32 ビット バージョンを参照します。
私は32ビットマシンで開発しています。ソース管理に何かをチェックインするたびに、Cruise Control がビルドをトリガーします。ビルド サーバーは 32 ビット マシンです。
残念ながら、コードは 64 ビット マシンにもデプロイする必要があります。私のコードはすべて管理されており、64 ビット マシン上で問題なく動作するため、問題を引き起こしているのはこの PDF ライブラリだけです。
チェックイン時にプロジェクト ファイルを開き、32 ビット PDF DLL への参照を 64 ビット バージョンへの参照に置き換えてから、ビルドを実行するクルーズ コントロール プロジェクトを作成する必要があると思います (Creating a build ready for 64 ビット マシン)。
これを行うための最善の方法について誰かアドバイスがありますか? 私の最初の計画は、次のようなビルド前のステップを作成することでした。
[prebuild] [exec] [baseDirectory]E:\Dev\CommonCode[/baseDirectory] [executable]Replace32DllWith64Dll.cmd[/executable] [/exec] [/prebuild]
置換を行うために .cmd ファイルを実行しますが、cmd ファイルをまとめる方法がわかりません。また、これが機能するかどうかもわかりません...おそらく、この種のことを行うためのより標準的な方法がありますか?
どんなポインタでも大歓迎です...
ありがとう、
ポール
programming-languages - 高水準言語の場合: 64 ビットか 32 ビットか?
OS X 10.5.7 の登場に伴い、64 ビットのアプリと 32 ビットのアプリの比較について多くの議論がありました... アプリを変換する必要があるメーカー、すぐに変換できないメーカーリソースが不足しているため(どうやら大したことです)など。特定のアプリ(iTunesなど)を変換することの利点など....
VM (つまり、.Net Framework や JVM のようなもの) で実行し、「マネージ コード」でのみコーディングする場合 (Java では、JNI ではありません。Ruby ではどうなるかわかりません):
- VM が 64 ビットになったときに、このことを自分で知らなくてもメリットがありますか? また
- あなたのアプリは可能なものと比較してかなり非効率的であるため、実際にはメリット (または変換の手間) を得ることができませんか?
c - 32 プラットフォームと 64 プラットフォームで sizeof を使用した printf: プラットフォームに依存しない方法でフォーマット コードを処理するにはどうすればよいですか?
プログラムが使用するメモリの量を出力するコードがあります。行は次のようになります。
ここで、anIntVariable は double 配列の要素数の int 変数です。いずれにせよ、32 ビット システムでは問題はありませんでしたが、64 ビット システムでは、符号なし long 整数に「%u」を使用することに関するコンパイラの警告が表示されます。形式コードとして "%lu" を使用すると、64 ビットの問題は修正されますが、型が unsigned int に戻るため、コンパイラは 32 ビットでエラーを発生させます。実際、sizeof(double) は 32 ビット システムと 64 ビット システムで異なる値を返すことがわかりました。コードを 32 ビットから 64 ビットに変換するための Web ページ ガイドをいくつか見つけました。
この行をプラットフォームに依存しない方法で記述するにはどうすればよいですか? プリプロセッサ ディレクティブを使用して実行できる方法はたくさんありますが、それはハックのようです。確かに、私が気づいていないエレガントな方法があります。