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

Slides:



Advertisements
Similar presentations
תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
Advertisements

מבוא למדעי המחשב לתעשייה וניהול
מבוסס על הרצאות של יורם זינגר, האוניברסיטה העברית י"ם
עיבוד תמונות ואותות בעזרת מחשב
תכנות תרגול 4 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
Binary & Decimal numbers = 3* * *10 + 5*1 = 3* * * *10 0 Decimal system: Ten digits: 0,1,2,3,…,9 Example:
מבוא לשפת C חידות ונקודות חשובות נכתב על-ידי יורי פקלני. © כל הזכויות שמורות לטכניון – מכון טכנולוגי לישראל.
לוגיקה צירופית יחידות סטנדרטיות מבוסס על הרצאות של יורם זינגר, האוניברסיטה העברית י " ם יהודה אפק, נתן אינטרטור אוניברסיטת תל אביב.
מערכות לוגיות ספרתיות פרופ ' יובל שביט חדר 303 בנין הנדסת תכנה, טלפון ש. ק.: יום ב ' 14:00-15:00 רצוי לתאם פגישה בדוא " ל :
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
תרגול מספר 7 אוגרים Registers
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
מבוא כללי למדעי המחשב תרגול 3. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
מבני בקרה לולאות. שאלה #1 שאלה ב' – תכתוב תוכנה הכותבת את תפריט הבאה Type 1 to find the area of a circle Type 2 to find the circumference of a circle.
Registers and Counters
Digital Logic Systems מערכות לוגיות ספרתיות
Registers and Counters
גרפים - Graphs גרף G(V,E) מורכב מקבוצת צמתים V וקבוצת קשתות E.
מפות קרנו ולוגיקה צירופית יהודה אפק, נתן אינטרטור אוניברסיטת תל אביב
עקרון ההכלה וההדחה.
1 שלבי ביצוע הוראת מכונה (1) FETCH = קרא הוראה מהזיכרון ע " פ הכתובת שמכיל ה -PC. (2) DECODE = פענח את הפקודה וקרא את האוגרים הנחוצים ( אחד או שניים ).
Last time on Clang משתנה: "פתק" המשמש את המחשב לשמירת מידע. לכל משתנה יש שם וטיפוס כללים לשמות משתנים –חייבים להכיל רק אותיות, מספרים ו '_' –חייבים להתחיל.
תרגול 5: ביטויים לוגיים ומשפטי תנאי (חזרה והרחבה)
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
1 מבוא למדעי המחשב מושגי יסוד. 2 אלפבית תווים המותרים בשימוש בתכניות C: אותיות לטיניות קטנות : a,b,c, …,z אותיות לטיניות גדולות : A,B, C, …,Z ספרות :
תרגול 2: ייצוג מספרים - המשך
מבוא מורחב למדעי המחשב בשפת Scheme תרגול 10. אג'נדה שאלות מבחינות חזרה על מימוש stream אפשרי 2.
עצים בינאריים - תזכורת דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
- אמיר רובינשטיין מיונים - Sorting משפט : חסם תחתון על מיון ( המבוסס על השוואות בלבד ) של n מפתחות הינו Ω(nlogn) במקרה הגרוע ובממוצע. ניתן לפעמים.
Number Systems Decimal (Base 10) –10 digits (0,1,2,3,4,5,6,7,8,9) Binary (Base 2) –2 digits (0,1) Digits are often called bits (binary digits) Hexadecimal.
Number Systems Decimal (Base 10) –10 digits (0,1,2,3,4,5,6,7,8,9) Binary (Base 2) –2 digits (0,1) Digits are often called bits (binary digits) Hexadecimal.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
DIGITAL SYSTEMS Number systems & Arithmetic Rudolf Tracht and A.J. Han Vinck.
Lecture 2 Number Representation, Overflow and Logic Topics Adders Math Behind Excess-3 Overflow Unsigned, signed-magnitude Two’s Complement Gray Code Boolean.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 5 תרשימי מצבים Statecharts למחלקות תגובתיות Reactive Classes הקדמה ודוגמא.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Tirgul 12 Trees 1.
Number Representation
Computer Architecture and Assembly Language
Formal Specifications for Complex Systems (236368) Tutorial #1
Carry Look Ahead (CLA).
Arithmetic operations in binary
CS1010 Programming Methodology
מיתוג ומערכות ספרתיות אתר הקורס:
מבוא למדעי המחשב סיבוכיות.
אבני היסוד של תוכנית ב- JAVA
מבוסס על הרצאות של יורם זינגר, האוניברסיטה העברית י"ם
SQL בסיסי – הגדרה אינדוקטיבית
מבנה המחשב ושפות סף תרגול 2.
תירגול 14: מבני נתונים דינאמיים
טרנזיסטור כמתג דו מצבי ממסר - RELAY הפעלה רציפה , PWM
עבודה עם נתונים באמצעות ADO.NET
מבוא למדעי המחשב הרצאה 1: מבוא כללי מי אני, שעות הקבלה:
אוגרים ומונים – Registers & Counters
ממשקים - interfaces איך לאפשר "הורשה מרובה".
Digital Systems: Number Systems and Codes
Marina Kogan Sadetsky –
מבוא כללי למדעי המחשב שיעור 2
עקרונות בסיסיים בתכנות Visual Basic
Computer Architecture and Assembly Language
Computer Architecture CST 250
Bit Manipulations CS212.
Chapter 1 Introduction.
Presentation transcript:

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

ייצוג מספרים במחשב הייצוג הפנימי במחשב וכן הפעולות האריתמטיות והלוגיות הינן כולן בינאריות. המרות מבסיס בינארי לבסיס אחר (בדר"כ עשרוני) הינן לצורך הצגת תוצאות. בסיסים נוספים לצורך הצגה שהינם שימושיים: Octal (8), Hexadecimal (16) 0…7 0…9ABCDEF 10 11 12 13 14 15 המעבר מבינארי לאוקטל או הקסדצימל הינו פשוט ומתבצע ע"י קיבוץ: 100 010 111.001 000 110 111 ( 4 2 7 . 1 0 6 7 )8 0011 1001 1100.0001 1000 1010 ( 3 9 C . 1 8 A )16  קוד מכונה "ישן" ו - Boot programs נכתבו ישירות ב"הקסא".

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

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

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

מעבר מעשרוני לבסיס אחר: נבצע חילוקים "מתמשכים" ב 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 252423222120 2/2  (1,0) a4 1/2  (0,1) a5 סיים!

חיבור מספרים: + (בסיס 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] תזכורת: ?

חיבור מספרים בינאריים: + 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 = פעולת החיבור והנשא ניתנות למימוש "פשוט" ע"י מעגלים ספרתיים.

ייצוגם של מספרים שליליים – ייצוג ע"י גודל וסימן 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).

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

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

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

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

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

חיסור בעזרת משלים ל –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. .

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

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

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-1 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 = 1  Cn-1 = "not of" Cn-2

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

בדיקת גלישה – מימוש: מספר בין 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): 1 = C3  C2 אם ו - חיוביים לא צריך להיות נשא לתוך המסכם האחרון ולא יכול להיות נשא סופי. אם ו - שליליים חייב להיות נשא סופי וכדי שהמספר יהיה שלילי צריך נשא לתוך המסכם האחרון.

מסכם של שני ביטים: + 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

קודים מתקני שגיאות טעויות אחסון כתוצאה ממתחים אקראיים. שינוי של ביט יחיד יכול לגרום לתוכנית שלמה לא לעבוד. קודים מתקני שגיאות (או מגלי שגיאות) 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 1 0 0 1 0 1 1 1 0 1 אם נופלת שגיאה: (X1 + X2 + X3 + X4 + S) mod 2  0

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

קודים וייצוגים ייצוג של ערכים לא בינאריים מבוצע ע"י שמירת וקטורים של ביטים. דוגמא: BCD – Binary Coded Decimal 0 0001 … 7 0111 1 0001 … 8 1000 2 0010 … 9 1001 קודים אלפאנומרים: ASCII, EBCDIC (IBM) A 1000001 0 0110000 B 1000010 1 0110001 C 1000011 9 0111001 Z 1011010 $ 0100100 . 0101110 ( 0101000 = 0111101 … …

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