سؤال إذا كان بإمكان أجهزة 32 بت معالجة أرقام تصل إلى 2 ^ 32 فقط ، فلماذا اكتب 1000000000000 (تريليون) بدون تعطل الجهاز الخاص بي؟


يمكن لأجهزة الكمبيوتر 32 بت فقط تخزين أعداد صحيحة موقعة حتى 231 - 1.
هذا هو السبب في نفاد عناوين IPv4 ودخلت عصر 64 بت.

ومع ذلك ، فإن الرقم 231 - 1 (2،147،483،647) ليست كبيرة مثل العدد 1 تريليون (1،000،000،000،000) التي يبدو لي أنها قادرة على عرض غرامة دون تحطم الجهاز الخاص بي.

يمكن للشخص أن يفسر لماذا هذا؟


365


الأصل


السؤال معيوب. يمكن للآلات 32 بت معالجة الأرقام أكبر بكثير من 2 ^ 32. يفعلون ذلك طوال الوقت ، مع "طويلة" وهلم جرا. يمكنهم تخزين ما يصل إلى 2 ^ 32 في سجل واحد ، ولكن البرنامج مكتوب لتجاوز هذه المشكلة. بعض اللغات الحديثة لا تعاني من مشكلة في طول رقم معين. - JFA
يرجى الاحتفاظ بالتعليقات حول الموضوع ، ومهذبا ، وذات صلة بالجوانب الفنية للسؤال. تمت إزالة ما يقرب من 50 تعليق نكتة بالفعل ، ونريد تجنب قفل المشاركة. شكرا لكم. - nhinkle♦
لقد كتب هذا السؤال بطريقة قذرة بعض الشيء. ماذا تقصد ب "الكتابة" و "عرض" الرقم 1000000000000؟ عندما كتبت السؤال كتبت رقم 1000000000000 ، ويعرض متصفح الويب الخاص بك على ما يرام ، أفترض ، ولكن هذا لا ينبغي أن يكون غريبا على أي شخص سبق له استخدام جهاز كمبيوتر من قبل. السؤال يسأل عن التفسير المجاني. - HelloGoodbye
يقدر الوعي البشري بحوالي 50 بت (قرأت في مكان ما). لذا فالسؤال ليس "كيف يمكنني أن أكتب 10^9 بدون تعطل جهاز الكمبيوتر الخاص بي؟ "بل بالأحرى" كيف يمكنني أن أكتب 10^(18) دون تحطم عقلي؟ " - Hagen von Eitzen
يمكن لأجهزة الكمبيوتر 32 بت فقط تخزين الأعداد الصحيحة غير المعلنة تصل إلى 2 ^ 32 - 1. 2 ^ 32 - 1 لا يساوي حتى 2،147،483،647 ... 300 حتى الأصوات ولا أحد أدرك هذا؟ - Koray Tugay


الأجوبة:


أجب على سؤالك بسؤالك عن سؤال مختلف:

كيف تعول على أصابعك إلى 6؟

من المحتمل أنك تعدّ العدد الأكبر الممكن بيد واحدة ، ثم تنتقل إلى يدك الثانية عند نفاد أصابعك. أجهزة الكمبيوتر تفعل الشيء نفسه ، إذا كانت بحاجة إلى تمثيل قيمة أكبر من سجل واحد يمكن أن تعقد أنها سوف تستخدم عدة كتل 32bit للعمل مع البيانات.


785



مضحك ،codename. فكيف تعتمد على أصابعك على 32 أو أكثر (بمعنى أنه تم استنفاد 2 ^ 5)؟ ؛) التشبيه بالانتقال إلى اليد الأخرى أمر جيد ... حتى إذا تأخر الثنائي الحاجة إلى الانتقال إلى اليد الأخرى. ما أود أن أرى عد إلى 1024 أو أكثر مع البراعة الدواسة للانتقال إلى أصابع قدم لمزيد من العد في ثنائي - يصل إلى 1،048،575! :) هذا يحتمل 20 بت من قوة اللوحة. : P - J0e3gan
يرجى الاحتفاظ بالتعليقات حول الموضوع وذات الصلة لمناقشة الجوانب الفنية لهذه الإجابة. تم بالفعل حذف أكثر من 60 تعليقًا نكتًا من هذه الإجابة ، ونريد تجنب قفل المشاركة. - nhinkle♦
@ codename- سهلة ، يمكنك تعيين إصبع واحد كمؤشر كومة. بمجرد نفاد أصابعك ، يمكنك إضافة المبلغ إلى المكدس وإعادة العد. - Makach
أين تعلمت ذلك ،codename؟ سمعت هذا أولاً من فريدريك بول ، انظر على سبيل المثال. هنا hjkeen.net/halqn/f_pohl3.htm - Zane
أعتقد أن هذا ليس هو الجواب على السؤال ذي الصلة. الإجابة بـ @ Bigbio2002 هي الإجابة الصحيحة. هنا "1000000000000" ليس رقمًا بل نصًا ، تمامًا مثل "adsfjhekgnoregrebgoregnkevnregj". ما تقوله صحيح ، لكني أشعر بقوة أن هذه ليست الإجابة الصحيحة. ولرؤية الكثير من وسائل التأنيب ... - Master Chief


أنت صحيح أن عددًا صحيحًا 32 بت لا يمكنه الاحتفاظ بقيمة أكبر من 2 ^ 32-1. ومع ذلك ، فإن قيمة هذا العدد الصحيح 32 بت وطريقة ظهوره على الشاشة هما شيئان مختلفان تمامًا. لا يتم تمثيل السلسلة المطبوعة "1000000000000" بواسطة عدد صحيح 32 بت في الذاكرة.

لعرض الرقم "1000000000000" حرفياً يتطلب 13 بايت من الذاكرة. يمكن لكل بايت فردي الاحتفاظ بقيمة تصل إلى 255. لا يمكن لأي منها الاحتفاظ بالقيمة العددية بالكامل ، ولكن يتم تفسيرها بشكل فردي كأحرف ASCII (على سبيل المثال ، الحرف "0"يتم تمثيله بالقيمة العشرية 48 ، القيمة الثنائية 00110000) ، يمكن دمجها معًا في صيغة منطقية بالنسبة لك ، إنسان.


مفهوم ذو صلة في البرمجة هو تلبيس، وهو كيف سيفسر جهاز كمبيوتر تيار معين من 0ق و 1الصورة. كما في المثال أعلاه ، يمكن تفسيره على أنه قيمة عددية أو شخصية أو حتى شيء آخر تمامًا. على الرغم من أن عددًا صحيحًا 32 بتًا قد لا يتمكن من الاحتفاظ بقيمة 1000000000000 ، فسيكون بإمكان رقم الفاصلة العائمة 32 بت ، باستخدام تفسير مختلف تمامًا.

فيما يتعلق بكيفية عمل أجهزة الكمبيوتر ومعالجتها من الأعداد الكبيرة داخليًا ، توجد أعداد صحيحة 64 بت (يمكنها استيعاب قيم تصل إلى 16 مليار مليار) ، وقيم النقطة العائمة ، بالإضافة إلى المكتبات المتخصصة التي يمكنها العمل بشكل كبير بشكل تعسفي أعداد.


398



في الواقع هذا هو في الغالب الصحيح ولكن ليس تماما. من غير المحتمل أن يكون رقم النقطة العائمة المكون من 32 نقطة قادراً على تمثيل 1000000000000 بدقة. وسوف يمثل رقمًا قريبًا جدًا من الرقم المطلوب ، ولكن ليس بالضبط. - Tim B
@ TimB: هل سمعت عن تنسيق decimal32؟ إنه جزء من معيار IEEE 754-2008. هذا التنسيق قادر على التمثيل الصحيح لهذا الرقم :) - V-X
صحيح ، هذا يمكن. ومع ذلك ليس هذا هو الشكل الذي يعنيه الناس عندما يقولون "تعويم" ، والذي عادة ما يشير إلى رقم نقطة عائمة 32 بت كما تم تخزينها واستخدامها من قبل المعالجات المعيارية النقطة المعيارية في أجهزة الكمبيوتر الحالية. - Tim B
@ تيمب في الواقع. أقرب رقم إلى الرقم الذي يمكن تمثيله كـ float32 هو 999999995904 - greggo
TimB: ولكن يمكن أن يمثل رقم نقطة عائم 64 بت بسهولة 1000000000000 بالضبط. إنها 10 ^ 12 أو 2 ^ 12 * 5 ^ 12؛ 5 ^ 12 يتطلب 28 بتة من الجزء العشري. - Keith Thompson


أولاً وقبل كل شيء ، يمكن لأجهزة الكمبيوتر ذات 32 بت تخزين أرقام تصل إلى 2 ² 2 في كلمة آلة واحدة. كلمة الآلة هو مقدار البيانات التي يمكن للمعالج معالجتها بطريقة طبيعية (أي يتم تنفيذ العمليات على بيانات بهذا الحجم في الأجهزة وتكون بشكل عام أسرع أداءً). تستخدم وحدات المعالجة المركزية (CPU) ذات 32 بت الكلمات التي تتكون من 32 بت ، وبالتالي يمكن تخزين الأرقام من 0 إلى 2 ³ 2 ² بإيجاز.

ثانيا، 1 تريليون و 1000000000000 هما شيئان مختلفان.

  • 1 تريليون هو مفهوم تجريدي للرقم
  • 1000000000000 هو النص

عن طريق الضغط 1 مره واحده 0 12 مرة كنت تكتب النص. 1 المدخلات 1، 0 المدخلات 0. نرى؟ أنت تكتب الحروف. الشخصيات ليست أرقام. الآلات الكاتبة لم يكن لديها وحدة المعالجة المركزية أو الذاكرة على الإطلاق وكانت تتعامل مع مثل هذه "الأرقام" بشكل جيد ، لأنها مجرد نص.

اثبت هذا 1000000000000 ليس رقمًا ، لكن النص: يمكن أن يعني 1 تريليون (بالأرقام العشرية) ، 4096 (في الثنائي) أو 281474976710656 (بالنظام الست عشري). لديها المزيد من المعاني في أنظمة مختلفة. معنى 1000000000000 هو رقم وتخزينه قصة مختلفة (سوف نعود إليه في لحظة).

لتخزين النص (في البرمجة يطلق عليه خيط) 1000000000000 تحتاج إلى 14 بايت (واحد لكل حرف بالإضافة إلى إنهاء NULL بايت يعني بشكل أساسي "السلسلة تنتهي هنا"). هذا هو 4 كلمات الآلة. 3 ونصف ستكون كافية ، لكن كما قلت ، العمليات على الكلمات الآلية أسرع. لنفرض ASCII يستخدم لتخزين النص، لذا في الذاكرة سيبدو مثل هذا: (تحويل رموز ASCII المقابلة ل 0 و 1 إلى ثنائي ، كل كلمة في سطر منفصل)

00110001 00110000 00110000 00110000
00110000 00110000 00110000 00110000
00110000 00110000 00110000 00110000
00110000 00000000 00000000 00000000

أربعة أحرف تناسب كلمة واحدة ، ويتم نقل الباقي إلى كلمة واحدة. يتم نقل الباقي إلى الكلمة التالية حتى يناسب كل شيء (بما في ذلك أول بايت NULL).

الآن ، عد إلى تخزين الأرقام. إنه يعمل تمامًا مثل النص المتدفق ، ولكن يتم تركيبه من اليمين إلى اليسار. قد يبدو الأمر معقدًا ، لذلك إليك مثال. من أجل البساطة ، لنفترض أن:

  • يستخدم الكمبيوتر الخيالي لدينا عشري بدلاً من ثنائي
  • بايت واحد يمكن أن تعقد الأرقام 0..9
  • كلمة واحدة تتكون من وحدتي بايت

هنا ذاكرة فارغة من كلمتين:

0 0
0 0

لنخزن الرقم 4:

0 4
0 0

الآن دعنا نضيف 9:

1 3
0 0

لاحظ أنه يمكن احتواء كلا المعاملات في بايت واحد ولكن ليس النتيجة. لكن لدينا واحد آخر جاهز للاستخدام. الآن دعونا تخزين 99:

9 9
0 0

مرة أخرى ، استخدمنا البايت الثاني لتخزين الرقم. دعونا نضيف 1:

0 0
0 0

يصيح ... هذا ما يسمى تجاوز عدد صحيح وهو سبب العديد من المشاكل الخطيرة ، في بعض الأحيان باهظة الثمن للغاية.

ولكن إذا كنا نتوقع حدوث هذا الفائض ، فيمكننا القيام بذلك:

0 0
9 9

والآن أضف 1:

0 1
0 0

يصبح أكثر وضوحًا إذا أزلت المسافات البينية والخطوط الجديدة:

0099    | +1
0100

لقد توقعنا حدوث تدفق زائد وقد نحتاج إلى ذاكرة إضافية. إن التعامل مع الأرقام بهذه الطريقة ليس بالسرعة التي تتناسب مع الأرقام التي تتلاءم مع كلمات واحدة ويجب أن يتم تنفيذها في البرامج. إضافة دعم لأرقام كلمات 32-بت إلى وحدة المعالجة المركزية 32-بت بشكل فعال يجعلها وحدة المعالجة المركزية 64 بت (الآن يمكن أن تعمل على أرقام 64 بت أصليا ، أليس كذلك؟).

ينطبق كل شيء وصفته أعلاه على الذاكرة الثنائية ذات 8 بايت و 4 بايت أيضًا ، وهو يعمل بنفس الطريقة تقريبًا:

00000000 00000000 00000000 00000000 11111111 11111111 11111111 11111111    | +1
00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000000

تحويل مثل هذه الأرقام إلى النظام العشري أمر صعب ، رغم ذلك. (لكن ذلك يعمل بشكل جيد مع الست عشري)


190



يقرأ إجابتك بالتعالي إلى حد ما. تتحدث OP بوضوح عن الرقم ، وليس النص: large as the number 1 trillion (1000000000000). أيضا ، كنت تقريبا نتحدث عنه حساب التعسفي الدقة، لكنك لم تذكر أيًا من المصطلحات لما تقوله .... - MirroredFate
"1 تريليون" هو أيضا سلسلة - Elzo Valugi
ElzoValugi كان علي أن أجد طريقة لعرض مفهوم العدد المجرد ، على عكس السلسلة التي تمثل عددًا. أعتقد أن "1 تريليون" هي طريقة أفضل وأقل غموضاً للقيام بذلك (انظر الدليل في الإجابة). - gronostaj
MirroredFate أنا لا أتفق مع "يتحدث بوضوح عن الرقم". يقول OP "عرض غرامة" ، والتي بوضوح هو نتحدث عن النص "1000000000000" بالنسبة لي ... - Joe
yannbane 'A' هي شخصية وليس رقمًا. '؟ هو شخصية وليس رقم. "1" هو شخصية وليس رقمًا أيضًا. الشخصيات هي مجرد رموز. يمكن أن تمثل الأرقام أو الأرقام ، لكنها بالتأكيد ليست أرقامًا. '1' يمكن أن يقف لواحد وعشرة ومئة ألف ، وهكذا ، إنه مجرد رمز يرمز إلى رقم يمكن أن يكون رقمًا أو جزءًا منه. يمكن أن تعني كلمة "10" (سلسلة من الأحرف) اثنين أو ثمانية أو عشرة أو ستة عشر وما إلى ذلك. ولكن عندما تقول أن لديك عشرة تفاحات ، فأنت تستخدم رقم عشرة وكل شخص يعرف ما تعنيه. هناك فرق كبير بين الأحرف والأرقام. - gronostaj


أنت أيضا قادر على الكتابة "هذا البيان خطأ" من دون تعطل جهاز الكمبيوتر الخاص بك :) @ سكوت الإجابة هي بقعة على الأطر حسابية معينة ، ولكن سؤالك من "كتابة" عدد كبير يعني أنه مجرد نص عادي ، على الأقل حتى يتم تفسيرها.

تصحيح: الان مع أقل سخرية معلومات أكثر فائدة عن طرق مختلفة رقم يمكن تخزينها في الذاكرة. سأكون وصف هذه مع أعلى التجريد بمعنى أنه يمكن للمبرمج الحديث كتابة التعليمات البرمجية قبل ترجمتها إلى رمز الجهاز للتنفيذ.

يجب أن تقتصر البيانات الموجودة على جهاز الكمبيوتر على بيانات معينة نوعويصف تعريف الكمبيوتر لهذا النوع العمليات التي يمكن تنفيذها على هذه البيانات وكيف (مثل مقارنة الأرقام أو تسلسل النص أو XOR قيمة منطقية). لا يمكنك ببساطة إضافة نص إلى رقم ، تمامًا كما لا يمكنك مضاعفة رقم بواسطة نص حتى يمكن تحويل بعض هذه القيم بين الأنواع.

دعنا نبدء ب الأعداد الصحيحة غير الموقعة. في أنواع القيم هذه ، يتم استخدام جميع البتات لتخزين المعلومات حول الأرقام ؛ لك هو مثال على عدد صحيح 32 بت غير موقعة حيث أي قيمة من 0 إلى 2^32-1 ويمكن تخزين. ونعم ، اعتمادًا على لغة أو بنية النظام الأساسي المستخدم ، يمكن أن يكون لديك أعداد صحيحة 16 بت أو أعداد صحيحة من 256-بت.

ماذا لو كنت تريد أن تكون سلبية؟ حدسي، الأعداد الصحيحة الموقعة هو اسم اللعبة. الاتفاقية هي تخصيص جميع القيم من -2^(n-1) إلى 2^(n-1)-1 - بهذه الطريقة نتجنب الارتباك في التعامل مع طريقتين للكتابة +0 و -0. لذلك عدد صحيح 32 بت موقعة يحمل قيمة من -2147483648 إلى 2147483647. أنيق ، أليس كذلك؟

حسنًا ، لقد غطينا الأعداد الصحيحة التي هي أرقام بدون مكون عشري. إن التعبير عن هذه الأمور هو أكثر تعقيدًا: فالجزء غير الصحيح لا يمكن أن يكون منطقيًا إلا في مكان ما 0 و 1لذلك ، كل بت إضافية تستخدم لوصفها ستزيد من دقتها: 1/2 ، 1/4 ، 1/8 ... المشكلة هي أنه لا يمكنك التعبير عن عشري بسيط 0.1 كمجموع الكسور التي لا يمكن أن يكون لها سوى قوتين في المقام. ألن يكون من الأسهل تخزين الرقم كعدد صحيح ، ولكنك توافق على وضع نقطة الجذر (عشري) بدلاً من ذلك؟ هذا يسمي نقطة ثابتة الأرقام ، حيث نقوم بتخزينها 1234100 ولكن نتفق على اتفاقية لقراءتها 1234.100 في حين أن.

نوع أكثر شيوعا نسبيا المستخدمة في العمليات الحسابية هو floating point. الطريقة التي يعمل بها هي حقا أنيق ، ويستخدم قليلا لتخزين قيمة تسجيل ، ثم بعض لتخزين الأس والأهمية. هناك معايير تحدد مثل هذه التوزيعات ، ولكن بالنسبة لـ 32 بت تعويم الحد الأقصى من الرقم الذي يمكنك تخزينه مذهل

(2 - 2^-23) * 2^(2^7 - 1) ≈ 3.4 * 10^38

هذا يأتي على حساب الدقة. جافا سكريبت المتاحة في المتصفحات يستخدم العوامات 64 بت ، ولا يزال لا يمكن الحصول على الأمور في نصابها الصحيح. فقط انسخ هذا إلى شريط العنوان واضغط على enter. تنبيه المفسد: النتيجة هي ليس سوف يكون 0.3.

javascript:alert(0.1+0.2);

هناك المزيد من الأنواع البديلة مثل Microsoft .NET 4.5 BigInteger، والتي ليس لها حدود علوية أو أقل نظريًا ويجب حسابها في "دفعات" ؛ لكن ربما التقنيات الأكثر روعة هي تلك التي تفهم الرياضيات ، مثل محرك ولفرام Mathematica ، والتي يمكن أن تعمل بدقة مع القيم المجردة مثل ما لا نهاية.


40



يمكنك القيام بذلك في هذه واقع. حاول القيام بذلك في عالم Star Trek. فقط قف قبل ، بسبب كل الشرر والدخان. - Michael Petrotta
هذا ليس بالضبط كيف يعمل نقطة ثابتة. هو في الواقع نظام يتم فيه تحجيم الأرقام وتحيزها لإنتاج الفاصلة العشرية. في المثال الخاص بك هو مقياس 1/1000 ولكن هناك أيضاً أرقام نقطة ثابتة (خاصة في رسومات الكمبيوتر) مثل هذا: 0 = 0.0، 255 = 1.0 - المقياس 1/255. - Andon M. Coleman


المفتاح هو فهم كيفية أجهزة الكمبيوتر ترميز أعداد.

صحيح ، إذا كان الكمبيوتر يصر على تخزين الأرقام باستخدام تمثيل ثنائي بسيط للرقم باستخدام كلمة واحدة (4 بايت على نظام 32 بت) ، فيمكن للكمبيوتر 32 بت فقط تخزين أرقام تصل إلى 2 ^ 32. ولكن هناك الكثير من الطرق الأخرى لتشفير الأرقام اعتمادًا على ما تريد تحقيقه معهم.

أحد الأمثلة على ذلك هو كيفية تخزين أجهزة الكمبيوتر للأرقام العائمة. يمكن لأجهزة الكمبيوتر استخدام مجموعة كاملة من الطرق المختلفة لتشفيرها. المعيار IEEE 754 يحدد قواعد لأعداد الترميز أكبر من 2 ^ 32. بشكل فاضح ، يمكن لأجهزة الكمبيوتر تنفيذ ذلك عن طريق قسمة 32 بت إلى أجزاء مختلفة تمثل بعض الأرقام من العدد والبتات الأخرى التي تمثل بحجم من الرقم (أي الأس ، 10 ^ x). هذا يسمح أكبر من ذلك بكثير نطاق من الأرقام من حيث الحجم ، ولكن يقوض الدقة (وهو موافق للعديد من الأغراض). وبالطبع ، يمكن للكمبيوتر أيضًا استخدام أكثر من كلمة واحدة لهذا الترميز ، مما يزيد من دقة حجم الأعداد المشفرة المتاحة. يسمح الإصدار 32 العشري البسيط من معيار IEEE للأرقام التي تحتوي على 7 أرقام عشرية من الدقة والأعداد تصل إلى حوالي 10 ^ 96 في الحجم.

ولكن هناك العديد من الخيارات الأخرى إذا كنت بحاجة إلى دقة إضافية. من الواضح أنه يمكنك استخدام المزيد من الكلمات في الترميز الخاص بك دون حد (على الرغم من وجود عقوبة الأداء للتحويل من وإلى صيغة مشفرة). إذا كنت ترغب في استكشاف طريقة واحدة يمكن القيام بها ، فهناك وظيفة رائعة مفتوحة المصدر لبرنامج Excel تستخدم نظام ترميز يسمح بمئات الأرقام من الدقة في الحساب. تسمى الوظيفة الإضافية Xnumbers وهي متوفرة هنا. الرمز موجود في Visual Basic وهو ليس أسرع ما يمكن ولكنه يتميز بسهولة الفهم والتعديل. إنها طريقة رائعة لمعرفة كيفية تحقيق أجهزة الكمبيوتر لتشفير أرقام أطول. ويمكنك اللعب مع النتائج داخل Excel دون الحاجة إلى تثبيت أي أدوات برمجة.


31





كل هذا في سؤالك.

يمكنك اكتب أي رقم تريد على الورق. جرب كتابة تريليون نقطة على ورقة بيضاء. انها بطيئة وغير فعالة. لهذا السبب لدينا نظام مكون من 10 أرقام لتمثيل هذه الأرقام الكبيرة. لدينا حتى أسماء لأعداد كبيرة مثل "مليون" ، "تريليون" وأكثر من ذلك ، لذلك لا أقول one one one one one one one one one one one... عالي.

تم تصميم المعالجات ٣٢ بت للعمل بسرعة وفعالية أكبر مع كتل الذاكرة التي تتكون من ٣٢ رقمًا ثنائيًا. لكننا ، نحن الأشخاص ، نستخدم نظامًا رقميًا مكونًا من 10 أرقام ، وأجهزة الكمبيوتر الإلكترونية ، ويستخدم نظامًا مكوَّنًا من رقمين (الثنائية). العددان 32 و 64 يحدثان فقط صلاحيات 2. لذلك مليون و تريليون هي صلاحيات 10. من الأسهل لنا أن نعمل بهذه الأعداد من الجموع 65536 ، على سبيل المثال.

نحن نكسر الأرقام الكبيرة إلى أرقام عندما نكتبها على الورق. أجهزة الكمبيوتر تحطيم الأرقام إلى عدد أكبر من الأرقام. يمكننا كتابة أي رقم نحبه ، وكذلك أجهزة الكمبيوتر إذا قمنا بتصميمها.


24





تشير 32 بت و 64 بت إلى عناوين الذاكرة. تشبه ذاكرة الكمبيوتر الخاص بك صناديق البريد ، وكل منها له عنوان مختلف. تستخدم وحدة المعالجة المركزية (CPU) هذه العناوين لمعالجة مواقع الذاكرة على ذاكرة الوصول العشوائي (ذاكرة الوصول العشوائي). عندما تستطيع وحدة المعالجة المركزية معالجة عناوين 16bit فقط ، يمكنك فقط استخدام 32 ميغابايت من ذاكرة الوصول العشوائي (التي تبدو ضخمة في ذلك الوقت). مع 32bit ذهب إلى 4 + جيجابايت (التي تبدو ضخمة في ذلك الوقت). الآن لدينا 64 بت عناوين ذاكرة الوصول العشوائي يذهب إلى تيرابايت (التي تبدو ضخمة).
ومع ذلك ، فإن البرنامج قادر على تخصيص كتل متعددة من الذاكرة لأشياء مثل تخزين الأرقام والنصوص ، الأمر متروك للبرنامج وليس له علاقة بحجم كل عنوان. لذلك يمكن لأحد البرامج أن يخبر وحدة المعالجة المركزية (CPU) ، سأستخدم 10 كتل عنوان للتخزين ، ثم نخزن عددًا كبيرًا جدًا ، أو سلسلة من 10 أحرف أو أيا كان.
ملاحظة جانبية: يتم الإشارة إلى عناوين الذاكرة بواسطة "مؤشرات" ، وبالتالي فإن القيمة 32 و 64 بت تعني حجم المؤشر المستخدم للوصول إلى الذاكرة.



15



إجابة جيدة باستثناء التفاصيل - أعطيت 16 بت من مساحة العنوان 64 كيلو بايت ، وليس 32 ميغابايت ، وآلات مثل 286 كان عناوين 24 بت (16 ميغابايت). أيضا ، مع عناوين 64 بت ، تذهب إلى أبعد من تيرابايت - أكثر مثل 16 إكسابايت - تيرابايت حول نوع حدود اللوحات الرئيسية / وحدات المعالجة المركزية من الجيل الحالي تفرض - ليس حجم العناوين. - Phil
يشير 32 بت إلى حجم الكلمة الجهاز ، وليس عناوين الذاكرة. كما ذكر فيل ، كان 286 وحدة المعالجة المركزية 16 بت ولكن استخدم 24 بت لمعالجة عن طريق تجزئة الذاكرة. وحدات المعالجة المركزية (CPUs) x86 هي 32 بت ولكن استخدام 36 بت عنونة. نرى PAE. - gronostaj
gronostaj well x86 يكون لديك معالجة 32 بت من 386 إلى Pentium. - Ruslan
Upvote لأن هذا هو الجواب الصحيح فقط هنا - يشير 32bit إلى 32 بت معالجة الذاكرة ، وليس 32bit الحساب. - user1207217
@ user1207217: ؟؟ لذلك ، وفقًا لمنطقك على سبيل المثال Z80 أو 8080 هي معالجات ذات 16 بت (بسبب عنوان الذاكرة 16 بت وحافلة الذاكرة)؟ - pabouk