Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Web Analytics
Cookie Policy Terms and Conditions עשרוני בקידוד בינארי - ויקיפדיה

עשרוני בקידוד בינארי

מתוך ויקיפדיה, האנציקלופדיה החופשית

עשרוני בקידוד בינארי (הידוע יותר בראשי התיבות BCD - Binary Coded Decimal), היא דרך הקידוד הנפוצה ביותר של ספרות עשרוניות במחשבים ובמערכות אלקטרוניות. ב-BCD, כל ספרה עשרונית מיוצגת על ידי 4 סיביות, כאשר ערכן של הסיביות מימין לשמאל הוא 1,2,4 ולבסוף 8. זהו מספר הסיביות המינימלי שיכול לייצג באופן בינארי את כל הספרות מ־0 עד 9. קיימים צירופי סיביות אחרים אשר משמשים לייצוג של סימן המספר או מאפיינים אחרים של הספרה/מספר).

תוכן עניינים

[עריכה] רעיון בסיסי

בכדי לקודד מספר עשרוני כדוגמת 127 בעזרת BCD, יש לקודד כל ספרה בנפרד לייצוג הבינארי שלה, ולכן למספר הנ"ל נקבל את הקידוד:

0001, 0010, 0111.

כיוון שיחידת האחסון של מרבית המחשבים, הבייט, הוא ברוחב 8 סיביות, ישנן שתי דרכים נפוצות לאחסן ספרות BCD (אשר רוחבן 4 סיביות כ"א) בבייטים אלה: האחת - להתעלם מ־4 הסיביות הנוספות שבבייט, לרוב על ידי הצבת 0 או 1 לתוכם; השנייה - לאחסן שתי ספרות BCD בכל בייט. מספר כזה נקרא מספר BCD דחוס, כאשר לרוב מספרי BCD דחוסים מלווים ב"ספרה" נוספת אשר מייצגת את הסימן של המספר כולו (נהוג לבחור את 1100 כספרת הסימן "+" ואת 1101 כספרת הסימן "-"). לכן, ניתן לייצג את המספר 127 באחת משתי הצורות הבאות: (11110001, 11110010, 11110111) בשיטה הראשונה (שיטת EBCDIC) או (00010010, 01111100) בשיטת BCD דחוס.

למרות ש־BCD בזבזני במקום (כמעט שישית מהזכרון מתבזבז, אפילו כאשר משתמשים בBCD דחוס), יש לו התאמה נוחה לשימוש למערך התווים של ASCII - ניתן לקבל את ערך ה־ASCII של הספרה על ידי פעולת OR בין ספרת ה־BCD עם המספר הבינארי 00110000 (המייצג את המספר העשרוני 48), או במילים אחרות - קוד ה־ASCII של ספרה הוא שרשור 4 הסיביות של ספרת ה־BCD עם המספר הבינארי 0011 משמאל. באופן דומה, ניתן לקבל את הספרות בייצוג EBCDIC על ידי שרשור 4 הסיביות של הספרה עם המספר הבינארי 1111 (או הפעלת OR עם המספר 11110000).

נוסף על כך, ניתן להציג מספרים גדולים בקלות על רכיבי תצוגה עם 7 מקטעים, על ידי פיצול המספרים לחצאי-בתים (כלומר לקבוצות של 4 סיביות) ושליחת כל קבוצה לרכיב בתצוגה שונה. למעשה, רכיב ה־BIOS במחשב האישי נוהג לרוב לשמור את התאריך והשעה בפורמט BCD, כנראה מסיבות היסטוריות (כמו שנאמר לעיל, ניתן לעבור מ־BCD לייצוג ASCII בקלות יחסית).

גם כיום קידוד BCD נמצא בשימוש רחב, ואריתמטיקה עשרונית מתבצעת בעזרת קידוד BCD או קידודים דומים.

[עריכה] BCD באלקטרוניקה

BCD נפוץ מאוד במערכות אלקטרוניות שבהם יש צורך להציג ערך מספרי, במיוחד במערכות אשר מכילות רכיבים לוגיים דיגיטליים בלבד (ללא מיקרו-מעבד). על ידי ניצול עקרונות BCD, ניתן לפשט במידע ניכרת את הטיפול במידע מספרי לתצוגה, וזאת על ידי התייחסות לכל ספרה כתת-מעגל יחיד. דבר זה תואם למדי את המציאות הפיזית של חומרת תצוגה - מתכנן המערכת יכול לבחור (וכנראה שגם יבחר) בסדרה של מספר רכיבים זהים אך נפרדים של תצוגה עם 7 מקטעים לצורך הצגת מספר של מכשיר מדידה כלשהו. אם הגודל הנמדד נשמר ומטופל כבינארי טהור, הרי שתרגום מידע זה לתצוגה יצרוך חומרה מסובכת ויקרה. אם הגודל הנמדד מטופל דרך BCD, ניתן לממש את אותה המערכת בקלות רבה (כפי שתואר בפסקאות הקודמות), ובצורה מודולרית (ניתן להרחיב את התצוגה ללא צורך בהתערבות הלוגיקה הקיימת לרכיבי התצוגה הקודמים).

[עריכה] קידוד בצפיפות גבוהה

אם ספרה עשרונית דורשת 4 סיביות, הרי ששלוש ספרות עשרוניות דורשות 12 סיביות. אולם, כיוון ש210>103, אם שלוש הספרות מקודדות ביחד, הרי שידרשו 10 סיביות בלבד. שני קידודים כאלה הם: קידוד צ'ן-הו ו עשרוני דחוס בצפיפות.

[עריכה] IBM ו-BCD

IBM השתמשה במושגים עשרוני בקידוד בינארי ו־BCD עבור קודים אלפאנומריים ברוחב 6 סיביות אשר ייצגו מספרים, אותיות לטיניות גדולות, ותווים מיוחדים. וריאציות שונות על הBCD שימשו במרבית המחשבים המוקדמים של IBM, כולל IBM 1620, סדרת IBM 1400 והמחשבים הלא-עשרוניים בסדרת IBM 700/7000. חברת IBM החליפה את הBCD שלה לקוד EBCDIC ברוחב 8-סיביות, עם יציאת המחשב System/360.

מקומות הסיביות ב־BCD היו מיוצגים בדרך כלל על ידי B, A, 8, 4, 2 ו-1. כדי לקודד ספרות, B ו-A היו מאופסים. לדוגמה, בקוד BCD זה האות A קודדה כך - (B,A,1).

[עריכה] רקע

כפי שראינו לעיל, בזמן שהשיטה להצגת מספרים עשרוניים בעזרת קידוד בינארי המופיע בערך זה היא הקידוד הנפוץ ביותר, כמובן שישנן רבות אחרות. לכן, למען הבהירות השיטה המוצגת כאן נקראת גם SBCD (באנגלית: עשרוני בקידוד בינארי פשוט), או BCD 8421. המילה 8421 מציינת את משקל כל סיבית בייצוג.

הטבלה הבאה מייצגת את הספרות העשרוניות במספר שיטות BCD

ספרה SBCD 8421 Excess-3 BCD 2421 BCD 84-2-1 IBM 1401 8421
0 0000 0011 0000 0000 1010
1 0001 0100 0001 0111 0001
2 0010 0101 0010 0110 0010
3 0011 0110 0011 0101 0011
4 0100 0111 0100 0100 0100
5 0101 1000 1011 1011 0101
6 0110 1001 1100 1010 0110
7 0111 1010 1101 1001 0111
8 1000 1011 1110 1000 1000
9 1001 1100 1111 1111 1001

[עריכה] יתרונות על פני קידודים אחרים

כפי שהוזכר מקודם, מספרים ב-BCD ניתנים להצגה פשוטה ולהמרה בקלות למחרוזת.

בשיטת BCD ניתן גם להכפיל ולחלק ב-10 וחזקותיו בקלות יחסית, על ידי פעולת היסט (shift) של ספרה אחת. למשל 161 = 10 / 1610.

בשיטת BCD קיים קידוד מדויק לכל מספר בעל ייצוג עשרוני. למשל, המספר 0.1 לא ניתן לקידוד מדויק בשיטות בינאריות כגון נקודה צפה ונקודה קבועה, אך ניתן לקדד אותו מדויק ב-BCD באמצעות ספרה אחת אחרי הנקודה. לעומת זאת, מספרים שלא ניתן לייצג עשרונית לא ניתן לייצג גם ב-BCD, למשל ...0.666 = 2/3.

[עריכה] היסטוריה משפטית

בשנת 1972, בית המשפט העליון של ארצות הברית הפך החלטה של ערכאה נמוכה שאישרה פטנט להפיכת מספרים מקודדים ב־BCD לבינארי על מחשב (ראה גוטצ'לק נגד בנסון), כלומר בית המשפט ביטל את הפטנט הנ"ל. היה זה תקדים חשוב בנסיון לקבוע האם ניתן לרשום פטנטים על תוכנה ואלגוריתמים.

[עריכה] ראו גם

[עריכה] קישורים חיצוניים

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu