টু কমপ্লিমেন্টের সুবিধা কী কী?


11

কিছু এডিসি / ড্যাক ডিভাইসে এগুলি 2 এর পরিপূরক আকারে ডেটা আউটপুট / ইনপুট দেওয়ার বিকল্পসমূহ।

দু'টির পরিপূরক ফর্মটিতে ডিজিটাল ডেটা উপস্থাপনের সুবিধা কী কী যখন আপনি কেবল সোজা বাইনারি কোড রাখতে পারেন এবং রূপান্তরটির সময় বাঁচাতে পারেন?



"বীজগণিত একটি মেশিনে (মহাবিশ্ব) চালিত যা দ্বিগুণের পরিপূরক" - HAKMEM 154 ( inwap.com/pdp10/hbaker/hakmem/hacks.html )
ChrisInEdmonton

2
দু'জনের পরিপূরক পাঁচটি কী? 101. সরাসরি বাইনারি কোডে 5 কী? 101. দুজনের পরিপূরক -5 কি? 1 ... 11111011। সোজা বাইনারি কোড -5 কি?
আহ

নেতিবাচক আউটপুট সহ এডিসি রাখা বিরল বিশেষ কেসের মতো বলে মনে হচ্ছে? এমনকি এর অর্থ কী, যে পরিমাপ করা ভোল্টেজ ভোল্টেজ কম রেফারেন্সের চেয়ে কম? এবং ঠিক কীভাবে আপনি এমন একটি এডিসি তৈরি করবেন? নেতিবাচক লোড থাকা ক্যাপগুলির সাথে ক্রমাগত আনুমানিকতা ...?
লন্ডিন

নোট করুন যে দুটি ভিন্ন শব্দ রয়েছে, প্রশংসা এবং প্রশংসা । এই বিষয়টি দু'জনের অভিনন্দন , এমনকি যদি এই দুজন খুব নম্র হয় এবং প্রায়শই আপনাকে সম্পর্কে সুন্দর জিনিস বলে।
পিট বেকার

উত্তর:


11

দু'জনের স্বাক্ষরিত পূর্ণসংখ্যার প্রশংসা উপস্থাপনাটি হার্ডওয়ারে চালিত করা সহজ। উদাহরণস্বরূপ, অবহেলা (অর্থাত্ x = -x ) সংখ্যার সমস্ত বিট উল্টিয়ে একটি যুক্ত করে সম্পাদন করা যেতে পারে। কাঁচা বাইনারিতে একই ক্রিয়াকলাপ সম্পাদন করা (যেমন একটি সাইন বিট সহ) সাধারণত আরও অনেক বেশি কাজ জড়িত, কারণ আপনাকে অবশ্যই স্ট্রিমের কিছু বিটকে বিশেষ হিসাবে বিবেচনা করতে হবে। একই হিসাবে যুক্ত হয় - negativeণাত্মক সংখ্যার জন্য অ্যাড অপারেশন ধনাত্মক সংখ্যার জন্য অ্যাড অপারেশনের অনুরূপ, তাই নেতিবাচক কেস পরিচালনা করার জন্য কোনও অতিরিক্ত যুক্তি (কোনও পাং উদ্দেশ্যে নয়) প্রয়োজন হয় না।

যদিও এর অর্থ এই নয় যে এটি আপনার দৃষ্টিকোণ থেকে সহজ, এই ডেটার গ্রাহক হিসাবে, এটি ডিভাইসের নকশার প্রচেষ্টা এবং জটিলতা কমিয়ে দেয়, সম্ভবত এটি একেবারে সস্তা করে তোলে।


1
বিট উল্টানো তারপর 1 যুক্ত করার জন্য যুক্ত করুন, না ??
স্কট সিডম্যান

2
@ স্কটসিডম্যান হ্যাঁ, দুঃখিত, আমি কিছুটা ভুলে গেছি। ঠিক করার জন্য সম্পাদিত :)
বহুপদী

1
আসলে, সর্বোচ্চ pickiness জন্য, প্রসেসর উপর নির্ভর করে তা গ্রহণ করার জন্য একটি একক চক্র হতে পারে এক্স = এক্স * -1, অথবা এক্স - = 0 এক্স , বনাম জন্য অন্তত দুটি চক্র এক্স = ~ X + 1 টি
Markt

@ মার্কেট হ্যাঁ, তবে আপনি যদি কেবলমাত্র একটি ন্যূনতম ডিভাইস (যেমন একটি সম্পূর্ণ প্রসেসর নন) প্রয়োগ করছেন তবে সিলিকনের জটিলতা কমিয়ে আনা উচিত sense
বহুবর্ষীয়

5
+1 টি এছাড়াও, দুই এর সম্পূরক শুধুমাত্র (যেমন একজনের পরিপূরক বা চিহ্ন বিট হিসাবে) 0. অন্যরা জন্য একটি একক মূল্য আছে দুই থাকার শেষ
sbell

5

এডিসি ডেটা রূপান্তর করতে পারে (0 এবং 5V এর মধ্যে ইনপুট ভোল্টেজ বলুন) এবং আপনার প্রয়োজন হয় সেই তথ্যটি স্বাক্ষরিত (0 ভি = 0, 5 ভি = সর্বোচ্চ কোড) বা স্বাক্ষরিত (2.5V = 0, 0 ভি = সর্বোচ্চ -5, 5 ভি = সর্বোচ্চ) + + ve)।

2 এর পরিপূরক স্বাক্ষরিত তথ্যের জন্য কম্পিউটারের সাধারণ প্রতিনিধিত্ব হওয়া ছাড়াও, উপরে বর্ণিত দুটি ফর্ম্যাটের মধ্যে রূপান্তর সম্পূর্ণ নগণ্য: কেবল এমএসবি উল্টে দিন!

এটি এডিসির অভ্যন্তরীণ যুক্তি যুক্ত করার জন্য অবিশ্বাস্যভাবে সস্তা এবং এডিসিকে ডেটাশিটে আরেকটি বিক্রয় পয়েন্ট দেয় ...


কেবলমাত্র নীচের একটি মন্তব্য হিসাবে দুজনের পরিপূরক এবং অফসেট বাইনারি মধ্যে এমএসবি স্যুইচ যোগ করেছেন
স্কট সিডম্যান

3

যদি আপনার নেতিবাচক সংখ্যার উপস্থাপনে গণিত করা দরকার হয় তবে দ্বিগুণ পরিপূরক এটি অফসেট বাইনারি তুলনায় আরও সহজ করে তোলে যা "স্বাক্ষরিত ইনট" ডেটা টাইপের সাথে মিলবে। আপনার সংকলকটি সহজেই এটির সাথে কীভাবে व्यवहार করবেন তা জানবে will অন্যথায়, আপনি ঘড়ির টিক্সগুলি পিছনে পিছনে রূপান্তর করতে ব্যয় করেন।


1

প্রশ্নে, এটিকে বোঝা যাচ্ছে যে এডিসিকে 2 এর পরিপূরক ফর্মের মধ্যে স্ট্রেট বাইনারিগুলির চেয়ে মান ফিরিয়ে দিতে বেশি সময় লাগে। যদিও এটি কোনও এডিসির কোনও নির্দিষ্ট বাস্তবায়নের ক্ষেত্রে এটি হতে পারে তবে এটি সাধারণভাবে সত্য নয় (উদাহরণস্বরূপ, মাইক্রো-কন্ট্রোলারদের এমএসপি ৪৩০ সিরিজের একটি এডিসি পেরিফেরাল অন-চিপ রয়েছে যা স্ট্রিন বাইনারি বা 2 এর পরিপূরক হিসাবে মানটির প্রতিবেদন করবে, তবে এটি উভয় ক্ষেত্রে একই সংখ্যক চক্র গ্রহণ করে)।

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

সোজা বাইনারি মোডে, এডিসি আপনাকে এমন একটি নম্বর দিচ্ছে যা এনালগ পরিমাণের পরিমাপের (ভার্চুয়ালি সর্বদা ভোল্টেজ) এবং পূর্ণ-স্কেল রেফারেন্স পরিমাণের মধ্যে অনুপাতকে উপস্থাপন করে। উদাহরণস্বরূপ, একটি 10-বিট এডিসি 0 থেকে 1023 (অন্তর্ভুক্ত) পর্যন্ত মানগুলি ফিরিয়ে দিতে পারে। আপনি যদি কোনও ভোল্টেজ (বলুন, 1.25 ভোল্ট) পরিমাপ করেন যা এডিসির রেফারেন্স ভোল্টেজের অর্ধেক (বলুন, 2.50 ভোল্ট), আপনি যে বাইনারি কোড পড়েছেন তা আপনি পড়তে পারেন এমন সর্বোচ্চ মানের অর্ধেক হয়ে যাবে - সুতরাং, 512, বা তার আশেপাশে, এডিসিতে রাউন্ডিং এবং অ-লাইনারিটির বিষয়।

উদাহরণস্বরূপ, ধরা যাক আপনার একটি ট্রান্সডুসার রয়েছে যা একটি ট্যাঙ্কে রকেট জ্বালানির পরিমাণের প্রতিবেদন করে। 0 ভি মানে ট্যাঙ্কটি খালি এবং 2.5V ভোল্টের অর্থ এটি পূর্ণ। সুতরাং আপনি কেবল আপনার এডিসিতে ট্রান্সডুসারকে সংযুক্ত করুন এবং আপনি চলে যাবেন!

তবে লক্ষ্য করুন যে উপরের অনুচ্ছেদে নেতিবাচক ভোল্টেজগুলি পরিমাপ করার কোনও উপায় নেই। যদি আমরা ট্যাঙ্কের ভিতরে এবং বাইরে রকেট জ্বালানির প্রবাহ পরিমাপ করতে চাই (এবং আমাদের এটির জন্য একটি ট্রান্সডুসার ছিল)? এডিসি নেতিবাচক সংখ্যাগুলি পরিমাপ করতে পারে না, সুতরাং আমাদের সমস্যা আছে। যাইহোক, 2 এর পরিপূরক মোড ব্যবহার করে এটি জাল করার সহজ উপায় রয়েছে: এই ক্ষেত্রে, ট্রান্সডুসার আউটপুটটিকে পুনরায় পক্ষপাত করা হয় যাতে এডিসির দুটি রেফারেন্স ভোল্টেজের মধ্যে শূন্য পয়েন্ট অর্ধেক হয়ে যায়। অন্য কথায়, ইতিবাচক প্রবাহ 1.25V এবং 2.50V এর মধ্যে ভোল্টেজ দ্বারা প্রতিনিধিত্ব করা হয়, এবং নেতিবাচক প্রবাহ 1.25V থেকে 0V দ্বারা প্রতিনিধিত্ব করা হয় - সুতরাং ট্যাঙ্কে প্রবাহ 512 থেকে 1023 এর এডিসি কোড দেবে এবং ধন্যবাদটির বাইরে প্রবাহিত হবে 511 থেকে 0 এর কোড (সরাসরি বাইনারি ফর্ম্যাটে)।

এখন এটি ভীষণ অসুবিধাজনক। এটিকে কিছু করার আগে আমাদের প্রতিটি পরিমাপ থেকে 512 বিয়োগ করতে হবে, যা -512 থেকে +1111 এর মধ্যে নম্বর দেয়। 2 এর পরিপূরক মোডের পয়েন্টটি এটি আপনার জন্য এটি করে!

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


1

দুটির পরিপূরক সিস্টেমটি ব্যবহারে রয়েছে কারণ এটি কীভাবে সহজ হার্ডওয়্যারটি প্রাকৃতিকভাবে পরিচালনা করে তা থেকে আসে। উদাহরণস্বরূপ চিন্তা করুন আপনার গাড়ির ওডোমিটার, যা আপনি শূন্যে পুনরায় সেট করেছেন। তারপরে গিয়ারটি বিপরীত করুন এবং 1 মাইল পিছনে গাড়ি চালান (দয়া করে বাস্তবে এটি করবেন না)। আপনার ওডোমিটার (যদি এটি যান্ত্রিক হয়) 0000 থেকে 9999 পর্যন্ত গড়িয়ে যাবে The দু'জনের পরিপূরক সিস্টেমটি একই রকম আচরণ করে।

এখানে চিত্র বর্ণনা লিখুন


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

এবং হ্যাঁ, আমার নিসনের ওডোমিটারটি এভাবে কাজ করে।


আপনার উত্তর ওভারফ্লো (এবং আন্ডারফ্লো) সম্পর্কে, তবে যেহেতু
ওডোমিটারটি

@ মার্কসেল, আসলে, ওডোমিটার উদাহরণটি দ্বিগুণ পরিপূরককে ব্যাখ্যা করে । এটি ঠিক যে পিকেপি ব্যাখ্যা দিয়ে খুব বেশি এগিয়ে যায় নি। যদি ছয়-অঙ্কের ওডোমিটার শূন্যটি পড়ে থাকে এবং আপনি এক মাইলের জন্য বিপরীতে গাড়ি চালান, তবে আপনি এটি -1 পড়ার প্রত্যাশা করবেন। পরিবর্তে, এটি 999999 পড়ে That's কারণ এটি 999999 ছয়-অঙ্কের, দশকের -1 এর পরিপূরক উপস্থাপনা।
সলোমন আস্তে আস্তে

@ জেমসেলারজ না, এখনও তা হয় না। উত্তরে এমন দুটি কিছুই নেই যা আসলে দুজনের পরিপূরককে স্পর্শ করে। বা এর পরিপূরক, বা সাইন-প্রস্থ বা কোনও স্বাক্ষরিত সংখ্যার উপস্থাপনা।
মার্সেলেম

@ মার্কসেল হ্যাঁ রয়েছে: দুটির পরিপূরক সিস্টেমের মূল ধারণা: শূন্য বিয়োগ একটি সর্বোচ্চ প্রতিনিধিত্বমূলক স্বাক্ষরযুক্ত পূর্ণসংখ্যার সমান। এটাই দুজনের পরিপূরক সিস্টেমের ধারণা। অন্য কোনও স্বাক্ষরিত সংখ্যার উপস্থাপনা এটি (আমার জ্ঞানের জন্য) দেয় না। এবং ওডোমিটার উদাহরণ দেখায় যে প্রকৃতির এই আচরণগত সম্পত্তি প্রকৌশলটির সরলতা থেকে কতটা প্রাকৃতিকভাবে আসে; ওডোমিটারের ক্ষেত্রে: মেকানিকাল ইঞ্জিনিয়ারিং থেকে। যান্ত্রিক এবং বৈদ্যুতিন উভয় বিশ্বে এটি (দুজনের পরিপূরক সিস্টেম) এটি কার্যকর করার সহজ উপায়।
পিকেপি

0

অন্যরা ইতিমধ্যে উত্তর দিয়েছে যে দ্বিগুণ প্রশংসা বাইনারি কম্পিউটার হার্ডওয়্যারের জন্য কেন সুবিধাজনক। তবে, আপনি সম্ভবত জিজ্ঞাসা করছেন যে এ / ডি কেন "স্ট্রেট বাইনারি" (আপনি যা ভাবেন তার সত্যিকারের অর্থ) এর পরিবর্তে দু'বার প্রশংসা আউটপুট করবে কেন?

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

কিছু এ / ডিএস, বিশেষত যারা মাইক্রোকন্ট্রোলারগুলিতে নির্মিত তাদের কাছে তাদের পরিসীমাটির নীচের অর্ধেকের জন্য নেতিবাচক মান উত্পাদন করার বিকল্প রয়েছে। বাইপোলার সিগন্যাল পরিমাপ করার সময় এটি একটি অনুভূত সুবিধা হতে পারে।

কমপক্ষে একটি মাইক্রোকন্ট্রোলারে, এটি সাধারণত নির্বোধ। কিছু ক্ষেত্রে আপনি কোনও রূপান্তর ছাড়াই সরাসরি এ / ডি মান ব্যবহার করতে পারেন। সেক্ষেত্রে আপনি ইতিমধ্যে অন্যান্য সমস্ত মান A / D ব্যাপ্তিতে রূপান্তর করেছেন। সমস্ত অ-নেতিবাচক সংখ্যায় এটি সীমাবদ্ধ করা আসলে জিনিসগুলিকে সরল করে।

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

আমি 100 টিরও বেশি মাইক্রোকন্ট্রোলার প্রকল্পগুলিতে এমন একটি ক্ষেত্রেও স্মরণ করতে পারি না যেখানে আমি স্বাক্ষরযুক্ত আউটপুট বিন্যাস ছাড়া অন্য কোনও ক্ষেত্রে A / D ব্যবহার করি।

সুতরাং এ / ডি আউটপুটটিং "দ্বিগুণ প্রশংসা" এর সুবিধাগুলি কী সে প্রশ্নের প্রশ্নের উত্তর দিতে দুটি উত্তর রয়েছে:

  1. এগুলি যে কোনওভাবেই হয়, কেবলমাত্র এই মানগুলি বেশিরভাগ সময়ই নেতিবাচক থাকে, সুতরাং আপনি দ্বিগুণ প্রশংসা এবং অন্যান্য স্বীকৃতিগুলির মধ্যে পার্থক্য বলতে পারবেন না, যেমন সাইন আকারের পরিমাণ।

  2. সুবিধাগুলি খুব সামান্য। একটি মাইক্রোকন্ট্রোলারের অভ্যন্তরে এগুলি মূলত অস্তিত্বহীন।

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


-1

আপনি যে 'স্ট্রিট বাইনারি কোড' এর কথা বলছেন তা কী? আমি ধরে নিলাম আপনার একটি চিহ্ন বিট থাকার অর্থ যা নেতিবাচক জন্য '1' এবং ধনাত্মক (বা তদ্বিপরীত ) জন্য '0' । এর দ্বিগুণ পরিপূরকগুলির সাথে আরও দুটি অসুবিধা রয়েছে যা এখনও উল্লেখ করা হয়নি: একটি আজকাল এই সময়ের মধ্যে অপ্রাসঙ্গিক এবং একটি গুরুত্বপূর্ণ।

মূলত অপ্রাসঙ্গিক একটি হ'ল আপনি একটি কম সংখ্যক প্রতিনিধিত্ব করতে পারেন - অর্থাত 8 বিটে 255 সংখ্যা। আপনি যখন 32 বা 64 বিট পেয়েছিলেন তবে আপনি যখন 4 বা 6 টি বিট নিয়ে কাজ করতে চান তখন এটি বেশ অপ্রাসঙ্গিক।

আরও গুরুত্বপূর্ণটি হ'ল এখন একই সংখ্যাটি উপস্থাপনের দুটি উপায় রয়েছে - বিশেষতঃ 0 - +0 এবং -0 তবে +0 এবং -0 একই সংখ্যা তাই আপনার বাস্তবায়নের বিষয়টি নিশ্চিত করতে হবে যে আপনি এইগুলি তুলনা করছেন না প্রতিবার সমতা পরীক্ষা করার জন্য সংখ্যাগুলি।


আমি মনে করি আপনি এখানে ট্র্যাক বন্ধ আছে। আপনি যখন একটি স্বাক্ষরবিহীন বাইনারি উপস্থাপনার বিষয়ে ওপি খুব স্পষ্টভাবে কথা বলছিলেন তখন আপনি একটি সাইন-মাত্রার প্রতিনিধিত্বের কথা বলছিলেন।
জো হাস

1
আপনি যদি স্বাক্ষরবিহীন প্রতিনিধিত্বের কথা বলছেন তবে টু এর পরিপূরকের কোনও লাভ নেই। এটি কেবল কিছুটা অপচয় করে।
জ্যাক এইডলি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.