مازاد-۳
مازاد-۳ یا افزونی-۳ (به انگلیسی: Excess-3) یا کد Stibitz، نمایش مغرضانه یا مازاد-N نامیده میشود، که مکمل کد BCD و سیستم اعداد میباشد. از سال ۱۹۷۰ این روش در کامپیوترهای قدیمی، شمارش پول و ماشین حسابهای قابل حمل و دستگاه های شمارش دودویی و موارد دیگر استفاده میشد. این یک راه برای نشان دادن ارزشها با تعدادی متعادل از اعداد مثبت و منفی بااستفادهاز یک شمارهاز پیش تعیین شده N که به عنوان یک ارزش بایاس میباشد. این یک کد بدون وزن میباشد. در مازاد XS-3، شمارهها به عنوان رقم دهدهی وهر رقم در چهار بیت به عنوان ارزش رقمی به علاوه ۳ ("بیش از حد" مقدار) در نظر گرفته شدهاست:
- کوچکترین عدد دودویی نشانگر کوچکترین مقدار است. (به عنوان مثال ۰ - ارزش اضافی)
- بزرگترین عدد دودویی نشان دهنده بزرگترین مقدار است.( برای مثال value 2 N+1 − Value Excess − 1 )
دهدهی | XS-3 | دهدهی | XS-3 | دهدهی | XS-3 | دهدهی | XS-3 |
---|---|---|---|---|---|---|---|
−۳ | ۰۰۰۰ | ۱ | ۰۱۰۰ | ۵ | ۱۰۰۰ | ۹ | ۱۱۰۰ |
−۲ | ۰۰۰۱ | ۲ | ۰۱۰۱ | ۶ | ۱۰۰۱ | ۱۰ | ۱۱۰۱ |
−۱ | ۰۰۱۰ | ۳ | ۰۱۱۰ | ۷ | ۱۰۱۰ | ۱۱ | ۱۱۱۰ |
۰ | ۰۰۱۱ | ۴ | ۰۱۱۱ | ۸ | ۱۰۱۱ | ۱۲ | ۱۱۱۱ |
یک عدد مانند ۱۲۷ کدگذاری میشود، کد هر یک از اعداد دهدهی آن به صورت (۰۱۰۰، ۰۱۰۱، ۱۰۱۰)میشود.
مزیت اصلی کدینگ XS-3 روی کدینگ غیر مغرضانه است که یک عدد دهدهی مکمل 9 (برای تفریق) را میتوان به عنوان یک عدد دودویی مکمل یک که فقط تمام بیتهای آن متمم شدهاند در نظر گرفت. علاوه بر این، هنگامی که مجموع دو عدد XS-3 بیشتر از ۹ شود، بیت نقلی از چهار بیت اضافه شده تنظیم خواهد شد.این کار به این دلیل، هنگامی که شما دو عدد بزرگتر یا برابر 0 اضافه میکنید، مقدار مازاد از مجموع شش حالت ممکن است.از آنجا چهار بیت صحیح میتواند مقادیر 0 تا 15 را در خود نگه دارد، یک مازاد از 6 یعنی هر جمعی بیش از 9 سرریز خواهد کرد.
افزودن مازاد-۳ کاری است روی یک الگوریتم متفاوت از سیستم دهدهی غیر مغرضانه یا وابسته به سیستم اعداد منظم دودویی. هنگامی که شما دو عددXS-3 با هم اضافه میکنید، نتیجه یک عددXS-3 نیست. به عنوان مثال، هنگامی که در XS-3 صفر و یک اضافه میکنید پاسخ به جای 1، 4 بنظر میرسد. به منظور حل این مشکل، هنگامی اضافه کردن ارقام به پایان رسید، اگر نتیجه عددی کمتر از 10 دهدهی باشد شما باید بایاس اضافی را با تفریق دودویی ۰۰۱۱ (3 دهدهی در باینری غیر مغرضانه) حذف کنید و اگر سرریز اتفاق افتاد تفرق دودویی ۱۱۰۱ (13 دهدهی در باینری غیر مغرضانه) انجام میدهیم.توجه داشته باشید که، در ۴ بیت دودویی، تفریق دودویی ۱۱۰۱ معادل جمع ۰۰۱۱ و بالعکس میباشد.
BCD به افزونی ۳ به عنوان مثال تبدیل (کد VHDL).
entity bcdxs3 is
Port (a: in std_logic;
b: in std_logic;
c: in std_logic;
d: in std_logic;
an: inout std_logic;
bn: inout std_logic;
cn: inout std_logic;
dn: inout std_logic;
w: out std_logic;
x: out std_logic;
y: out std_logic;
z: out std_logic);
end bcdxs3;
architecture dataflow of bcdxs3 is
begin
an <= not a;
bn <= not b;
cn <= not c;
dn <= not d;
w <= (an and b and d) or
(a and bn and cn) or
(an and b and c and dn);
x <= (an and bn and d) or
(an and bn and c and dn) or
(an and b and cn and dn) or
(a and bn and cn and d);
y <= (an and cn and dn) or
(an and c and d) or
(a and bn and cn and dn);
z <= (an and dn) or
(a and bn and cn and dn);
end dataflow;
See also
- کد گری
- Offset binary