Presentation is loading. Please wait.

Presentation is loading. Please wait.

ייצוג מספרים יהודה אפק, יוסי מטיאס אוניברסיטת תל אביב

Similar presentations


Presentation on theme: "ייצוג מספרים יהודה אפק, יוסי מטיאס אוניברסיטת תל אביב"— Presentation transcript:

1 ייצוג מספרים יהודה אפק, יוסי מטיאס אוניברסיטת תל אביב
ייצוג מספרים יהודה אפק, יוסי מטיאס אוניברסיטת תל אביב מבוסס על הרצאות של יורם זינגר, האוניברסיטה העברית י"ם

2 ייצוג מספרים במחשב הייצוג הפנימי במחשב וכן הפעולות האריתמטיות והלוגיות הינן כולן בינאריות. המרות מבסיס בינארי לבסיס אחר (בדר"כ עשרוני) הינן לצורך הצגת תוצאות. בסיסים נוספים לצורך הצגה שהינם שימושיים: Octal (8), Hexadecimal (16) 0…7 0…9ABCDEF המעבר מבינארי לאוקטל או הקסדצימל הינו פשוט ומתבצע ע"י קיבוץ: ( )8 ( C A )16  קוד מכונה "ישן" ו - Boot programs נכתבו ישירות ב"הקסא".

3 מעבר בין בסיסים מספר: בסיס r ערך: בסיס radix
מעבר לבסיס עשרוני (decimal): * *

4 LSB bit ( Least significant bits)
MSB bit (most significant bits) LSB bit ( Least significant bits)

5 שיטה אחרת להעברת בסיסים לבסיס עשרוני (decimal):
קל לראות שהוספת 0 למספר מצד ימין – גורמת להכפלה ב- 2 של המספר – Shift left 1 דוגמא: שאלה: מה מבצע Shift right 1 לכן ניתן לחשב בראש מספר בצורה הבאה: במקום

6 מעבר מעשרוני לבסיס אחר:
נבצע חילוקים "מתמשכים" ב r: X  X / r X(1) , S(1) שארית X mod r X(1)/r X(2) , S(2) שארית מספר להמרה X(2)/r X(3) , S(3) שארית מנה )S(n)S(n-1)…S(2)S(1))r התוצאה: דוגמא: (35)10 (?)2 35/2  (17,1) a0 17/2  (8,1) a1 8/2  (4,0) a2 (100011)2 4/2  (2,0) a3 2/2  (1,0) a4 1/2  (0,1) a5 סיים!

7 חיבור מספרים: + (בסיס r) O0=(a0+b0) mod r
C1 C0 O0=(a0+b0) mod r C0 =1 iff a0 + b0  r (0 otherwise) ai{0,1,…,r-1} bi{0,1,…,r-1} Oi=(ai+bi+ci-1) mod r Ci=[(ai+bi+ci-1)r] תזכורת: ?

8 חיבור מספרים בינאריים:
+ C1 C0 “On” Cn-1 נשא סופי ai{0,1} bi  {0,1} oi{0,1} ci  {0,1} Oi = (ai + bi + ci-1( mod 2 ci-1, bi, aiזוגיות של ai + bi + ci-1  2 אם 0 אחרת Ci = פעולת החיבור והנשא ניתנות למימוש "פשוט" ע"י מעגלים ספרתיים.

9 ייצוגם של מספרים שליליים – ייצוג ע"י גודל וסימן
S גודל n ביטים סימן S=0  המספר חיובי X (n ביטי הגודל) S=1  המספר שלילי -X דוגמא: n=2 0-: 100 1-: 101 2-: 110 3-: 111 שליליים: 0: 000 1: 001 2: 010 3: 011 חיוביים: ייצוג כפול ל – 0. קשה לבצע פעולות אריתמטיות. משתמשים בייצוג זה בייצוג מספרים בנקודה צפה (floating point) לצורך הצגת המונה (exponent).

10 חישוב המשלים ל – 1: נרצה שחיבור השלילי של מספר יתן 0.
נרצה לייצג מספרים שליליים באופן פשוט שיאפשר חיסור ע"י חיבור השלילי של מספר. חישוב המשלים ל-1: הפוך "1" ל – "0" ו – "0" ל –"1". נרצה שחיבור השלילי של מספר יתן 0.

11 חישוב המשלים ל – 2: הפתרון נוסיף 1. חישוב המשלים ל-2:
חישוב המשלים ל-2: הפוך "1" ל – "0" ו – "0" ל –"1". נוסיף לתוצאה 1 + 1

12 Unsigned : במשלים ל-2 : n ביטים, מיצג 2n מספרים. טווח המספרים
an-1 an-2    a1 a0 טווח המספרים 0, 1, …, 2n -1 במשלים ל-2 : מספרים בני nספרות, ביט הסימן הספרה ה- MSB. טווח המספרים -2n-1, -2n-1+1, …, -1, 0, 1, …, 2n-1 -1 an-1 an-2    a1 a0

13

14 מציאת הערך של מספר שלילי
כדי לדעת מה מיצג מספר שלילי – מבצעים שוב אותו תהליך היפוך כל 0 ל-1 וכל 1 ל-0 ובסוף הוספת 1 כלומר   כלומר המספר הוא

15 Sign extend נתון מספר ב- 8 ביטים (byte)
רוצים להציג את המספר ב- 16 ביטים הפתרון קח את MSB ו"מרח" אותו על כל הביטים החדשים = =

16 חיסור בעזרת משלים ל –2: קלט: X,Y מספרים בינאריים בעלי n ספרות וספרת סימן (n+1) מיוצגים ע"י 2’s Complement Xn-1Xn-2…X0 Yn-1Yn-2…Y0 קלט: X,Y נשא Xn-1Xn-2…X1 X0 Yn-1Yn-2…Y1Y0 Zn-1Zn-2…Z0 חבר: X+Y Z=X+Y נשא סופי התעלם מנשא סופי בדוק גלישה overflow התוצאה הינה חיובית / שלילית בייצוג 2’s Comp. .

17 3 = 00112 (-5) = 24 – 5 = 0 1 0 1 2 1 0 1 1 2 שלילי 2’s Comp. -2 
דוגמא: n=3, חשב (-5)   נזדקק ל - 4 סיביות (+1) ביט סימן. 3 = (-5) = 24 – 5 = 1 1 שלילי 2’s Comp. -2  דוגמא: n=3, חשב (-3)   נזדקק ל - 4 סיביות (+1) ביט סימן. 5 = (-3) = 24 – 3 = 1 1 נשא סופי "התעלם". “1” מתעלמים מהנשא הסופי. הוא חשוב בבדיקה של גלישה (overflow) שתיתכן כאשר מחברים שני חיוביים (שליליים) והתוצאה גדולה (קטנה) מדי לייצוג ב– n ביטים.

18 נשא וגלישה של ביטים (או ספרות):
נשא Carry: הינו מצביע על "תופעה" תקינה ומשמש לקביעת הסימן. גלישה Overflow: מצביע על פעולה לא תקינה כתוצאה מחיבור שני מספרים גדולים יותר מדי. דוגמא: עובדים עם מספרים בני 3 ביטים (ייצוג בינארי) ורוצים לייצג שליליים וחיוביים כדי לבצע חיסור:  נקצה 4 ביטים למספר. Carry: 7 - 3 7: 1 3: 1 -3: 1 Virtual מדומה + נשא סופי 1 4 Overflow: 5 + 7 1 + 1 אין נשא סופי “-4” 1 1

19 Overflow ב-משלים ל-2 חיבור שני חיובים: + =
an-1 an-2    a1 a0 n- 1 n-2 חיבור שני חיובים: 1    + 1    = אין נשא 1    אין נשא סופי (n-1) יש נשא (n-2) חיבור שני שליליים: 1    + 1    יש נשא סופי = 1 1    יש נשא סופי (n-1) אין נשא (n-2). an an-2 … a1 a0 bn-1 bn-2 … b1 b0 On-1 On-2 Cn-1 Cn-2 Ci  נשא מביטים "i" Overflow: Cn-1 Cn-2 =  Cn-1 = "not of" Cn-2

20 Overflow ב - unsigned חיבור שני חיובים: + = נשא 1 נשא סופי  overflow
an-1 an-2    a1 a0 n- 1 n-2 חיבור שני חיובים: 1    + 1    = נשא 1    נשא סופי  overflow

21 בדיקת גלישה – מימוש: מספר בין n=4 ביטים a3 b3 a2 b2 a1 b1 a0 b0 C3
Adder C2 Adder C1 Adder C0 Adder "0" נשא סופי נשא לתוך סיביות הסימן S3 S2 S1 S0 מספר בין n=4 ביטים Overflow: Cn-1  Cn-2 = 1 בדוגמא (5+7): = C3  C2 אם ו חיוביים לא צריך להיות נשא לתוך המסכם האחרון ולא יכול להיות נשא סופי. אם ו שליליים חייב להיות נשא סופי וכדי שהמספר יהיה שלילי צריך נשא לתוך המסכם האחרון.

22 מסכם של שני ביטים: + b1 a1 Carry a1 + b12 (a1 + b1) mod 2 C S
S = 1 אמ"מ בדיוק אחד מ – b1/a1 הינו 1. C = 1 אמ"מ גם a1 וגם b1 הינם 1. C = a1 and b1 = a1  b1 = a1b1 S = a1 Xor b1 = a1  b1 = a1 b1 + a1b1 and, ,   function {0,1}  {0,1)  {0,1} and (x,y) = 1 iff x=y=1 מהם הכללים או החוקים בעזרתם עובדים עם ביטים? George Boole (1854)  Boolean Algebra

23 קודים מתקני שגיאות טעויות אחסון כתוצאה ממתחים אקראיים.
שינוי של ביט יחיד יכול לגרום לתוכנית שלמה לא לעבוד. קודים מתקני שגיאות (או מגלי שגיאות) ECC – Error Correcting Codes Linear Codes, Hamming, Reed – Salomon Error Detecting Codes – Checksum, Parity Checking Example: הוסף ביט לכל 4 ביטים, הביט יספור זוגיות S = (X1 + X2 + X3 + X4) mod 2 = X1  X2  X3  X4 X1 X2 X3 X4 S אם נופלת שגיאה: (X1 + X2 + X3 + X4 + S) mod 2  0

24 אוגרים ואחסון ביטים (בינארי)
(signed) char 8 bit short 16 bit int 32 bit long int 64 bit אוגרים (Registers) הינם אוסף של תאי זיכרון מהירים מאוד (זמן גישה כתדר שעון המחשב) שבעזרתם מבצעים פעולות אריתמטיות. מחשב מכיל ALU המבצע חיבורים מהירים תוך כדי בדיקת נכונות התוצאה (overflow) R1 R2 + R3 R4

25 קודים וייצוגים ייצוג של ערכים לא בינאריים מבוצע ע"י שמירת וקטורים של ביטים. דוגמא: BCD – Binary Coded Decimal קודים אלפאנומרים: ASCII, EBCDIC (IBM) A B C Z $ ( =

26 char: גודל byte ב - ASCII
American Standard Code For information Interchange ב- Unicode - גודל char הוא 2 בתים.

27


Download ppt "ייצוג מספרים יהודה אפק, יוסי מטיאס אוניברסיטת תל אביב"

Similar presentations


Ads by Google