নেতিবাচক স্বাক্ষরিত মানগুলি কীভাবে সংরক্ষণ করা হয়?


13

আমি স্বাক্ষরিত পূর্ণসংখ্যার সর্বাধিক এবং সর্বনিম্ন মানগুলিতে এই ভিডিওটি দেখছিলাম ।

ইতিবাচক স্বাক্ষরিত মানটির একটি উদাহরণ ধরুন - 0000 0001 প্রথম বিটটি উল্লেখ করে যে সংখ্যাটি ইতিবাচক এবং শেষ 7 বিট নিজেই সংখ্যা। সুতরাং এটি সহজেই +1 হিসাবে ব্যাখ্যা করা হয়।

এখন নেতিবাচক স্বাক্ষরিত মানটির একটি উদাহরণ ধরুন - 10000000 যা -8 হিসাবে আসে। ঠিক আছে, কম্পিউটারটি বুঝতে পারে যে এটি প্রথম বিটের কারণে এটি একটি নেতিবাচক মান তবে এটি কীভাবে বুঝতে পারে যে 00 0000 মানে -8?

সাধারণভাবে, কম্পিউটারে কীভাবে নেতিবাচক স্বাক্ষরিত মানগুলি সংরক্ষণ / ব্যাখ্যা করা হয়?


nl.wikedia.org/wiki/Two%27s_complement কীভাবে বাইনারি সংখ্যা কম্পিউটারে সংরক্ষণ করা হয়।
পিটার বি

@ পিটারবি সম্ভবত আপনার কম্পিউটার। এবং অন্যান্য অনেক লোক। সঙ্গত কারণে! তবে বোঝাবেন না এটি একমাত্র উপায়।
আন্ডারস্কোর_ডি

আপনার পছন্দ মতো কোনও উপায়। আমি কমপক্ষে 256 ভাবতে পারি! কম্পিউটারে (8 বিট) বাইনারি নম্বর সংরক্ষণের উপায়। তবে সবচেয়ে ঐ অবিশ্বাস্যভাবে নিরীহ হয়।
কালেথ

সি নির্দিষ্ট করে না, এটি মূলত কীভাবে চিপ প্রস্তুতকারক ডেটা উপস্থাপনের সিদ্ধান্ত নেয়। সি মেশিন কোডে সংকলিত হয়ে যায় এবং এটি কীভাবে চিপটি সংখ্যা সঞ্চয় করে তা পুনরায় সংজ্ঞায়িত না করার যত্ন নেওয়া হয়। একই নিয়মগুলি ভাসমান পয়েন্ট সংখ্যাগুলিতে প্রযোজ্য। তারা কীভাবে সংরক্ষণ করা হয় তা নির্ধারণ করার জন্য এটি চিপ প্রস্তুতকারকের up বেশিরভাগ চিপ নির্মাতারা 2 এর পরিপূরক ব্যবহার করে তবে আমি নিশ্চিত যে ব্যতিক্রম আছে।
বেরিন লরিটস

উত্তর:


29

সি স্ট্যান্ডার্ডটি নেতিবাচক স্বাক্ষরিত সংখ্যার উপস্থাপনের কোনও বিশেষ উপায়ে আদেশ দেয় না।

সবচেয়ে বাস্তবায়নের যে আপনি সম্মুখীন করার সম্ভাবনা বেশি যে, নেতিবাচক স্বাক্ষরিত পূর্ণসংখ্যার কি বলা হয় সঞ্চিত হয় দুই এর সম্পূরক । নেতিবাচক স্বাক্ষরযুক্ত সংখ্যাগুলি সংরক্ষণের অন্য প্রধান উপায়টিকে তার পরিপূরক বলা হয় ।

একটি এন-বিট সংখ্যার দুটির পরিপূরক xহিসাবে সংজ্ঞায়িত করা হয়েছে 2^N - x। উদাহরণস্বরূপ, দুটির 8-বিটের পরিপূরক 1হ'ল 2^8 - 1, বা 1111 1111। 8-বিট দুই এর সম্পূরক 8হয় 2^8 - 8বাইনারি হয় যা 1111 1000। এর বিটগুলি উল্টিয়ে xএবং একটি যুক্ত করেও এটি গণনা করা যেতে পারে । উদাহরণ স্বরূপ:

 1      = 0000 0001
~1      = 1111 1110
~1 + 1  = 1111 1111
-1      = 1111 1111

 21     = 0001 0101
~21     = 1110 1010
~21 + 1 = 1110 1011
-21     = 1110 1011

একটি এন-বিট সংখ্যা এক্স এর একের পরিপূরকটি মূলত তার সমস্ত বিট উল্টিয়ে এক্স হিসাবে সংজ্ঞায়িত করা হয়।

 1      = 0000 0001
-1      = 1111 1110

 21     = 0001 0101
-21     = 1110 1010

দু'জনের পরিপূরকটির পরিপূরক থেকে বেশ কয়েকটি সুবিধা রয়েছে। উদাহরণস্বরূপ, এটিতে 'নেতিবাচক শূন্য' ধারণা নেই, যা সঙ্গত কারণে বহু লোককে বিভ্রান্ত করছে। দু'জনের পরিপূরক হিসাবে স্বাক্ষরযুক্ত পূর্ণসংখ্যার সাথে যেমন করা হয় তেমন যোগফল, গুণ এবং বিয়োগফল একইরূপে কার্যকর হয় comple


19

বাইনারিতে নেতিবাচক মানগুলি উপস্থাপনের জন্য তিনটি সুপরিচিত পদ্ধতি রয়েছে:

  1. স্বাক্ষরিত আকার । এটি বোঝা সহজ, কারণ এটি negativeণাত্মক দশমিক মানগুলির সাথে আচরণ করার সময় আমরা যেমন ব্যবহার করি ঠিক তেমনভাবে কাজ করে: প্রথম অবস্থান (বিট) চিহ্নটি (ধনাত্মক হিসাবে 0, নেতিবাচক জন্য 1) এবং অন্য বিটগুলি সংখ্যাটি উপস্থাপন করে । যদিও এটি আমাদের পক্ষে বোঝা সহজ, কম্পিউটারগুলির পক্ষে কাজ করা শক্ত, বিশেষত নেতিবাচক সংখ্যার সাথে গাণিতিক করার সময়।
    8-বিট স্বাক্ষরিত মাত্রায় 8 মান 0 0001000 এবং -8 1 0001000 হিসাবে প্রতিনিধিত্ব করা হয়।

  2. ওয়ান এর সম্পূরক । এই উপস্থাপনায়, কেবলমাত্র সাইন বিট নয়, সমস্ত বিট উল্টিয়ে সংশ্লিষ্ট পজিটিভ সংখ্যা থেকে নেতিবাচক সংখ্যা তৈরি করা হয়। এটি কম্পিউটারের জন্য নেতিবাচক সংখ্যাসমূহের সাথে কাজ করা সহজ করে তোলে তবে এটির জটিলতা রয়েছে যে +0 এবং -0 এর জন্য দুটি স্বতন্ত্র উপস্থাপনা রয়েছে। সমস্ত বিট উল্টানো মানুষের পক্ষে এটি বোঝা আরও শক্ত করে তোলে।
    8-বিটের কারও পরিপূরকটিতে, মান 8 টি 00001000 এবং -8 11110111 হিসাবে প্রতিনিধিত্ব করা হয়।

  3. দুই এর সম্পূরক । এটি আজকাল নেতিবাচক পূর্ণসংখ্যার জন্য ব্যবহৃত সবচেয়ে সাধারণ প্রতিনিধিত্ব কারণ কম্পিউটারের সাথে কাজ করা সবচেয়ে সহজ তবে এটি মানুষের পক্ষে বোঝাও সবচেয়ে কঠিন। কারও পরিপূরক এবং দুটি এর পরিপূরকের মধ্যে নেতিবাচক মানগুলির জন্য ব্যবহৃত বিট নিদর্শনগুলির সাথে তুলনা করার সময় এটি লক্ষ্য করা যায় যে পরবর্তী কম সংখ্যার জন্য দুটির পরিপূরক এনকোডে একই বিট প্যাটার্নটি। উদাহরণস্বরূপ 11111111 এর পরিপূরক -0 এবং দুটির পরিপূরক -1 এর জন্য এবং একইভাবে 10000000 (-127 বনাম -128) এর জন্য দাঁড়িয়েছে।
    8-বিট টু এর পরিপূরকগুলিতে, মান 8 টি 00001000 এবং -8 11111000 হিসাবে প্রতিনিধিত্ব করা হয়।


8
স্বাক্ষরিত আকারের দুটি জিরোও রয়েছে।
জার্গ ডব্লু মিটাগ

চিহ্ন / মাত্রার উল্লেখ করার জন্য +1 অস্বাভাবিক এবং অসুবিধাগুলি (সিপিইউগুলির জন্য যদি মানুষ না হয়!), তবে এটি মূল্যবান।
আন্ডারস্কোর_ডি

আমরা প্রায় প্রত্যেকে স্বাক্ষরিত আকার, বিশেষত এফপি সংখ্যা দিয়ে কাজ করি।
Paulo1205

2

স্বাক্ষরিত পূর্ণসংখ্যাগুলি http://en.wikedia.org/wiki/Two%27s%20 কমপ্লিমেন্ট ব্যবহার করে সংরক্ষণ করা হয়

তারপরে আপনি পাবেন:

000   0
001   1
010   2
011   3
100   -4
101   -3
110   -2
111   -1

মূলত এটি খুব সহজ গণনা, আপনি স্বাক্ষরিত পূর্ণসংখ্যার সর্বোচ্চ অর্ধেক গণনা করেন। একটি +1 করুন, এটি নেতিবাচক করুন এবং গণনা শুরু করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.