דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • בהיר
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • כהה
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. קטגוריות בהרצה
  3. תכנות
  4. C++
  5. עזרה הדדית - C++
  6. מדריך | אסמבלי- קצת על בינארי וHex (שאני לא חובב בלשון המעטה.)

מדריך | אסמבלי- קצת על בינארי וHex (שאני לא חובב בלשון המעטה.)

מתוזמן נעוץ נעול הועבר עזרה הדדית - C++
16 פוסטים 8 כותבים 293 צפיות 10 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • B מנותק
    B מנותק
    Bugs Bunny
    כתב נערך לאחרונה על ידי Bugs Bunny
    #1

    # קצת על בינארי והקס.

    לפני שנמשיך קצת על : בינארי והקסדצימלי.

    למה בינארי?

    לבני אדם יש עשר אצבעות, אז איכשהו יצא שאנחנו סופרים בבסיס 10.
    למחשב, לעומת זאת, אין אצבעות. יש לו מיליארדי טרנזיסטורים, שאפשר לחשוב עליהם בצורה מאוד מפושטת כמו מפסקים זעירים שיכולים להיות במצב כזה או במצב אחר.

    דלוק או כבוי.

    1 או 0.

    וזהו.

    לכן המידע הדיגיטלי במחשב מיוצג בבסיס 2, שנקרא בינארי (Binary).

    אנחנו רגילים לכתוב:

    0 1 2 3 4 5 6 7 8 9
    

    כי אנחנו עובדים בבסיס 10.

    בבינארי יש רק:

    0 1
    

    לכן המספר:

    10
    

    בבסיס 2 הוא בעצם 2 בבסיס 10.

    וזה מזכיר את המשפט (@בנימין-מחשבים )

    "יש 10 סוגי אנשים: אלה שמבינים בינארית ואלה שלא."

    אלה שמבינים בינארית יודעים ש־10 זה 2.

    ואלה שלא... מחכים ל־9 הבאים. שלא יבואו. 😄


    Bit

    חשוב לזכור!

    Bit הוא יחידת המידע הקטנה ביותר שיש במחשב

    ביט אחד יכול להיות:

    0
    

    או:

    1
    

    כלומר יש לו שתי אפשרויות בלבד.

    אם יש ארבעה ביטים:

    1010
    

    יש לנו ארבעה ביטים נפרדים:

    1 0 1 0
    

    כל אחד מהם יכול להיות 0 או 1.

    ואם יש שמונה ביטים:

    10101100
    

    יש לנו Byte אחד, כלומר 8 ביטים.

    1 0 1 0 1 1 0 0
    <------ 8 ------->
    

    זה חשוב כי בהמשך באסמבלי תפגשו כל הזמן במונחים כמו:

    Bit
    Byte   = 8 bits
    Word   = 16 bits
    DWORD  = 32 bits
    QWORD  = 64 bits
    

    אז למה לא בינארי?

    כי זה סיוט לבני אנוש...

    נניח השורה הבאה.

    1101111010101101
    

    זה בינארי אבל לא שקריא לבני אדם.
    בקוד מכונה ובזיכרון אנחנו יכולים להיתקל ברצפים הרבה יותר ארוכים.

    פה נכנס Hexadecimal, או בקיצור Hex.


    הקס - בסיסי 16 בספירה

    הקסדצימלי הוא פשוט בסיס 16.

    במקום עשר ספרות כמו בבסיס 10:

    0 1 2 3 4 5 6 7 8 9
    

    יש לנו 16 אפשרויות:

    0 1 2 3 4 5 6 7 8 9 A B C D E F
    

    האותיות מייצגות את המספרים:

    A = 10
    B = 11
    C = 12
    D = 13
    E = 14
    F = 15
    

    למה בסיס 16?

    עיקרון פשוט ומאוד שימושי:

    16 = 2⁴

    כל ספרה אחת בהקס מייצגת 4 ביטים.

    לדוגמה:

    0000 = 0
    0001 = 1
    0010 = 2
    0011 = 3
    0100 = 4
    0101 = 5
    0110 = 6
    0111 = 7
    1000 = 8
    1001 = 9
    1010 = A
    1011 = B
    1100 = C
    1101 = D
    1110 = E
    1111 = F
    

    במקום לכתוב:

    1101111010101101
    

    אפשר לחלק לארבע.

    1101 1110 1010 1101
    

    ולהמיר כל קבוצה לספרת Hex:

     D    E    A    D
    

    ולכן:

    1101111010101101₂ = DEAD₁₆
    

    אותו מידע בדיוק.

    צורה יותר קריאה (אני ממש לא מסכים😕 )


    איך זה נראה באסמבלי?

    באסמבלי, כשתראו מספר Hex, בדרך כלל תראו לפניו 0x.

    לדוגמה:

    mov rax, 0xDEAD
    

    ה־0x אומר:

    "המספר כתוב בהקסדצימלי."

    כלומר:

    0xDEAD
    

    דרך אחרת לכתוב אותו ערך בבינארי:

    1101 1110 1010 1101
    

    או בעשרוני:

    57005
    

    שלושת הייצוגים מתארים את אותו ערך:

    57005₁₀
    = DEAD₁₆
    = 1101111010101101₂
    

    לדוגמה:

    mov rax, 0xFF
    

    או:

    mov rax, 255
    

    מה שונה בהקס?

    אבל:

    בבסיס 16 אנחנו צריכים 16 ספרות, אבל יש לנו רק:

    0-9
    

    פשוט ממשיכים באותיות:

    A = 10
    B = 11
    C = 12
    D = 13
    E = 14
    F = 15
    

    ולכן אפשר לראות דברים כמו:

    0xDEAD
    0xBEEF
    0xCAFE
    

    אחד המפורסמים הוא:

    0xDEADBEEF
    

    לסיכום:

    בזיכרון של המחשב אין באמת "Hex".
    Hex הוא דרך שבה אנחנו כותבים ומציגים מידע.
    גם "בינארי" הוא דרך הייצוג שלנו למידע הדיגיטלי.
    בפועל, בזיכרון יש מצבים פיזיקליים שאנחנו מייצגים כ־0 ו־1.
    לכן אם בזיכרון יש למשל:

    10101100
    

    אפשר להציג את אותם 8 ביטים כ:

    10101100    ← בינארי
    AC          ← Hex
    172         ← עשרוני
    

    זה לא אומר שיש בזיכרון שלושה דברים שונים.

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


    אז למה Hex?

    כי כשעובדים בלואו לבל נתעסק המון בבינארי

    אבל לכתוב בינארי זה סיוט:

    11111111100000001111010110101010
    

    ב־Hex זה הופך ל:

    0xFFF0F5AA
    

    הרבה יותר קצר, הרבה יותר קל לראות ולזהות מבנים. (עובדים עם זה המון..)

    בגלל שכל ספרת Hex מייצגת בדיוק 4 ביטים, אפשר לעבור מבינארי לHex בצורה מאוד קלה.

    לדוגמה:

    1011 0010 1111 0100
    

    הופך ל:

    B    2    F    4
    

    כלומר:

    0xB2F4
    

    בעז"ה זה היה קצת חשבון @אלישי אשמח להצטרף לקבוצת תכנות זה יהיה יותר מסודר..
    בעז"ה המשך יבוא (גילוי נאות: AI ערך פה ושם קצת אך לא כתב בעיקר פיסק)

    25802 דאבלד א 3 תגובות תגובה אחרונה
    15
    • B Bugs Bunny

      # קצת על בינארי והקס.

      לפני שנמשיך קצת על : בינארי והקסדצימלי.

      למה בינארי?

      לבני אדם יש עשר אצבעות, אז איכשהו יצא שאנחנו סופרים בבסיס 10.
      למחשב, לעומת זאת, אין אצבעות. יש לו מיליארדי טרנזיסטורים, שאפשר לחשוב עליהם בצורה מאוד מפושטת כמו מפסקים זעירים שיכולים להיות במצב כזה או במצב אחר.

      דלוק או כבוי.

      1 או 0.

      וזהו.

      לכן המידע הדיגיטלי במחשב מיוצג בבסיס 2, שנקרא בינארי (Binary).

      אנחנו רגילים לכתוב:

      0 1 2 3 4 5 6 7 8 9
      

      כי אנחנו עובדים בבסיס 10.

      בבינארי יש רק:

      0 1
      

      לכן המספר:

      10
      

      בבסיס 2 הוא בעצם 2 בבסיס 10.

      וזה מזכיר את המשפט (@בנימין-מחשבים )

      "יש 10 סוגי אנשים: אלה שמבינים בינארית ואלה שלא."

      אלה שמבינים בינארית יודעים ש־10 זה 2.

      ואלה שלא... מחכים ל־9 הבאים. שלא יבואו. 😄


      Bit

      חשוב לזכור!

      Bit הוא יחידת המידע הקטנה ביותר שיש במחשב

      ביט אחד יכול להיות:

      0
      

      או:

      1
      

      כלומר יש לו שתי אפשרויות בלבד.

      אם יש ארבעה ביטים:

      1010
      

      יש לנו ארבעה ביטים נפרדים:

      1 0 1 0
      

      כל אחד מהם יכול להיות 0 או 1.

      ואם יש שמונה ביטים:

      10101100
      

      יש לנו Byte אחד, כלומר 8 ביטים.

      1 0 1 0 1 1 0 0
      <------ 8 ------->
      

      זה חשוב כי בהמשך באסמבלי תפגשו כל הזמן במונחים כמו:

      Bit
      Byte   = 8 bits
      Word   = 16 bits
      DWORD  = 32 bits
      QWORD  = 64 bits
      

      אז למה לא בינארי?

      כי זה סיוט לבני אנוש...

      נניח השורה הבאה.

      1101111010101101
      

      זה בינארי אבל לא שקריא לבני אדם.
      בקוד מכונה ובזיכרון אנחנו יכולים להיתקל ברצפים הרבה יותר ארוכים.

      פה נכנס Hexadecimal, או בקיצור Hex.


      הקס - בסיסי 16 בספירה

      הקסדצימלי הוא פשוט בסיס 16.

      במקום עשר ספרות כמו בבסיס 10:

      0 1 2 3 4 5 6 7 8 9
      

      יש לנו 16 אפשרויות:

      0 1 2 3 4 5 6 7 8 9 A B C D E F
      

      האותיות מייצגות את המספרים:

      A = 10
      B = 11
      C = 12
      D = 13
      E = 14
      F = 15
      

      למה בסיס 16?

      עיקרון פשוט ומאוד שימושי:

      16 = 2⁴

      כל ספרה אחת בהקס מייצגת 4 ביטים.

      לדוגמה:

      0000 = 0
      0001 = 1
      0010 = 2
      0011 = 3
      0100 = 4
      0101 = 5
      0110 = 6
      0111 = 7
      1000 = 8
      1001 = 9
      1010 = A
      1011 = B
      1100 = C
      1101 = D
      1110 = E
      1111 = F
      

      במקום לכתוב:

      1101111010101101
      

      אפשר לחלק לארבע.

      1101 1110 1010 1101
      

      ולהמיר כל קבוצה לספרת Hex:

       D    E    A    D
      

      ולכן:

      1101111010101101₂ = DEAD₁₆
      

      אותו מידע בדיוק.

      צורה יותר קריאה (אני ממש לא מסכים😕 )


      איך זה נראה באסמבלי?

      באסמבלי, כשתראו מספר Hex, בדרך כלל תראו לפניו 0x.

      לדוגמה:

      mov rax, 0xDEAD
      

      ה־0x אומר:

      "המספר כתוב בהקסדצימלי."

      כלומר:

      0xDEAD
      

      דרך אחרת לכתוב אותו ערך בבינארי:

      1101 1110 1010 1101
      

      או בעשרוני:

      57005
      

      שלושת הייצוגים מתארים את אותו ערך:

      57005₁₀
      = DEAD₁₆
      = 1101111010101101₂
      

      לדוגמה:

      mov rax, 0xFF
      

      או:

      mov rax, 255
      

      מה שונה בהקס?

      אבל:

      בבסיס 16 אנחנו צריכים 16 ספרות, אבל יש לנו רק:

      0-9
      

      פשוט ממשיכים באותיות:

      A = 10
      B = 11
      C = 12
      D = 13
      E = 14
      F = 15
      

      ולכן אפשר לראות דברים כמו:

      0xDEAD
      0xBEEF
      0xCAFE
      

      אחד המפורסמים הוא:

      0xDEADBEEF
      

      לסיכום:

      בזיכרון של המחשב אין באמת "Hex".
      Hex הוא דרך שבה אנחנו כותבים ומציגים מידע.
      גם "בינארי" הוא דרך הייצוג שלנו למידע הדיגיטלי.
      בפועל, בזיכרון יש מצבים פיזיקליים שאנחנו מייצגים כ־0 ו־1.
      לכן אם בזיכרון יש למשל:

      10101100
      

      אפשר להציג את אותם 8 ביטים כ:

      10101100    ← בינארי
      AC          ← Hex
      172         ← עשרוני
      

      זה לא אומר שיש בזיכרון שלושה דברים שונים.

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


      אז למה Hex?

      כי כשעובדים בלואו לבל נתעסק המון בבינארי

      אבל לכתוב בינארי זה סיוט:

      11111111100000001111010110101010
      

      ב־Hex זה הופך ל:

      0xFFF0F5AA
      

      הרבה יותר קצר, הרבה יותר קל לראות ולזהות מבנים. (עובדים עם זה המון..)

      בגלל שכל ספרת Hex מייצגת בדיוק 4 ביטים, אפשר לעבור מבינארי לHex בצורה מאוד קלה.

      לדוגמה:

      1011 0010 1111 0100
      

      הופך ל:

      B    2    F    4
      

      כלומר:

      0xB2F4
      

      בעז"ה זה היה קצת חשבון @אלישי אשמח להצטרף לקבוצת תכנות זה יהיה יותר מסודר..
      בעז"ה המשך יבוא (גילוי נאות: AI ערך פה ושם קצת אך לא כתב בעיקר פיסק)

      25802 מנותק
      25802 מנותק
      2580
      מדריכים
      כתב נערך לאחרונה על ידי
      #2

      @Bugs-Bunny כתב:

      לבני אדם יש עשר אצבעות, אז איכשהו יצא שאנחנו סופרים בבסיס 10.

      כיהודים מאמינים אנחנו יודעים שזה לא נכון בכלל וגובל בכפירה... ואכמ"ל...

      בקרו - https://yo-2580.github.io/profile2580/

      אברהם גלסרא מ 2 תגובות תגובה אחרונה
      6
      • 25802 2580

        @Bugs-Bunny כתב:

        לבני אדם יש עשר אצבעות, אז איכשהו יצא שאנחנו סופרים בבסיס 10.

        כיהודים מאמינים אנחנו יודעים שזה לא נכון בכלל וגובל בכפירה... ואכמ"ל...

        אברהם גלסרא מנותק
        אברהם גלסרא מנותק
        אברהם גלסר
        מדריכים
        כתב נערך לאחרונה על ידי אברהם גלסר
        #3

        @bugs-bunny שכוייח על המדריך המעניין, החכמתי!

        @2580 כתב:

        כיהודים מאמינים אנחנו יודעים שזה לא נכון בכלל וגובל בכפירה

        בהחלט.
        על פי היהדות לכל אדם שנברא בצלם יש מינימום 19 אצבעות בכל יד!
        מקור: עמוס, י"א, ל'
        (אל תלכו לחפש אין שם כלום)

        להורדה הכי פשוטה מיוטיוב:
        https://did.li/horada

        תגובה 1 תגובה אחרונה
        😂
        0
        • צול גאהצ מחובר
          צול גאהצ מחובר
          צול גאה
          כתב נערך לאחרונה על ידי
          #4

          רק‌​‌‌​‌​​​​​‌ אני חושב שכאן המקום לתייג את @10110000 ולנסות לפענח מה הכוונה בשם הזה?

          רמז לא כזה קשה 😉

          מ תגובה 1 תגובה אחרונה
          🤓
          1
          • 25802 2580

            @Bugs-Bunny כתב:

            לבני אדם יש עשר אצבעות, אז איכשהו יצא שאנחנו סופרים בבסיס 10.

            כיהודים מאמינים אנחנו יודעים שזה לא נכון בכלל וגובל בכפירה... ואכמ"ל...

            מ מנותק
            מ מנותק
            מד
            כתב נערך לאחרונה על ידי מד
            #5

            @bugs-bunny
            מדריך מצויין!
            חשבתי שאני הולך לקרוא בשביל סקרנות בלבד, להלכה ולא למעשה.
            ובסופו של דבר גיליתי הסבר על המילים DWORD ו-QWORD שאף פעם לא הבנתי מה זה...
            תודה רבה! מחכה על פרק ב'...

            @2580 כתב:

            כיהודים מאמינים אנחנו יודעים שזה לא נכון בכלל וגובל בכפירה... ואכמ"ל...

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

            תגובה 1 תגובה אחרונה
            7
            • צול גאהצ צול גאה

              רק‌​‌‌​‌​​​​​‌ אני חושב שכאן המקום לתייג את @10110000 ולנסות לפענח מה הכוונה בשם הזה?

              רמז לא כזה קשה 😉

              מ מנותק
              מ מנותק
              מד
              כתב נערך לאחרונה על ידי
              #6

              @צול-גאה ניחוש GPT בספוילר

              10110000 בבינארי = 176 בעשרוני.

              אבל כנראה שהכוונה של שם המשתמש היא לא סתם המספר 176, אלא קוד ASCII:
              המספר הבינארי 10110000 הוא 0xB0, כלומר התו ° בקידוד Latin-1/Windows-1252 — סימן המעלות.

              כלומר, הרמז בתגובה כנראה מוביל ל־"מעלות" / °. 😄

              צול גאהצ תגובה 1 תגובה אחרונה
              🤔
              0
              • מ מד

                @צול-גאה ניחוש GPT בספוילר

                10110000 בבינארי = 176 בעשרוני.

                אבל כנראה שהכוונה של שם המשתמש היא לא סתם המספר 176, אלא קוד ASCII:
                המספר הבינארי 10110000 הוא 0xB0, כלומר התו ° בקידוד Latin-1/Windows-1252 — סימן המעלות.

                כלומר, הרמז בתגובה כנראה מוביל ל־"מעלות" / °. 😄

                צול גאהצ מחובר
                צול גאהצ מחובר
                צול גאה
                כתב נערך לאחרונה על ידי
                #7

                @מד
                כיוון יפה
                אבל לא
                דווקא התחלת בסדר אבל לא מספיק
                אני לא רוצה להמשיך לא יודע אם הוא מסכים

                או יותר נכון די ברור שהוא לא מסכים ;)

                בהצלחה

                B תגובה 1 תגובה אחרונה
                1
                • צול גאהצ צול גאה

                  @מד
                  כיוון יפה
                  אבל לא
                  דווקא התחלת בסדר אבל לא מספיק
                  אני לא רוצה להמשיך לא יודע אם הוא מסכים

                  או יותר נכון די ברור שהוא לא מסכים ;)

                  בהצלחה

                  B מנותק
                  B מנותק
                  Bugs Bunny
                  כתב נערך לאחרונה על ידי
                  #8
                  פוסט זה נמחק!
                  תגובה 1 תגובה אחרונה
                  0
                  • B Bugs Bunny

                    # קצת על בינארי והקס.

                    לפני שנמשיך קצת על : בינארי והקסדצימלי.

                    למה בינארי?

                    לבני אדם יש עשר אצבעות, אז איכשהו יצא שאנחנו סופרים בבסיס 10.
                    למחשב, לעומת זאת, אין אצבעות. יש לו מיליארדי טרנזיסטורים, שאפשר לחשוב עליהם בצורה מאוד מפושטת כמו מפסקים זעירים שיכולים להיות במצב כזה או במצב אחר.

                    דלוק או כבוי.

                    1 או 0.

                    וזהו.

                    לכן המידע הדיגיטלי במחשב מיוצג בבסיס 2, שנקרא בינארי (Binary).

                    אנחנו רגילים לכתוב:

                    0 1 2 3 4 5 6 7 8 9
                    

                    כי אנחנו עובדים בבסיס 10.

                    בבינארי יש רק:

                    0 1
                    

                    לכן המספר:

                    10
                    

                    בבסיס 2 הוא בעצם 2 בבסיס 10.

                    וזה מזכיר את המשפט (@בנימין-מחשבים )

                    "יש 10 סוגי אנשים: אלה שמבינים בינארית ואלה שלא."

                    אלה שמבינים בינארית יודעים ש־10 זה 2.

                    ואלה שלא... מחכים ל־9 הבאים. שלא יבואו. 😄


                    Bit

                    חשוב לזכור!

                    Bit הוא יחידת המידע הקטנה ביותר שיש במחשב

                    ביט אחד יכול להיות:

                    0
                    

                    או:

                    1
                    

                    כלומר יש לו שתי אפשרויות בלבד.

                    אם יש ארבעה ביטים:

                    1010
                    

                    יש לנו ארבעה ביטים נפרדים:

                    1 0 1 0
                    

                    כל אחד מהם יכול להיות 0 או 1.

                    ואם יש שמונה ביטים:

                    10101100
                    

                    יש לנו Byte אחד, כלומר 8 ביטים.

                    1 0 1 0 1 1 0 0
                    <------ 8 ------->
                    

                    זה חשוב כי בהמשך באסמבלי תפגשו כל הזמן במונחים כמו:

                    Bit
                    Byte   = 8 bits
                    Word   = 16 bits
                    DWORD  = 32 bits
                    QWORD  = 64 bits
                    

                    אז למה לא בינארי?

                    כי זה סיוט לבני אנוש...

                    נניח השורה הבאה.

                    1101111010101101
                    

                    זה בינארי אבל לא שקריא לבני אדם.
                    בקוד מכונה ובזיכרון אנחנו יכולים להיתקל ברצפים הרבה יותר ארוכים.

                    פה נכנס Hexadecimal, או בקיצור Hex.


                    הקס - בסיסי 16 בספירה

                    הקסדצימלי הוא פשוט בסיס 16.

                    במקום עשר ספרות כמו בבסיס 10:

                    0 1 2 3 4 5 6 7 8 9
                    

                    יש לנו 16 אפשרויות:

                    0 1 2 3 4 5 6 7 8 9 A B C D E F
                    

                    האותיות מייצגות את המספרים:

                    A = 10
                    B = 11
                    C = 12
                    D = 13
                    E = 14
                    F = 15
                    

                    למה בסיס 16?

                    עיקרון פשוט ומאוד שימושי:

                    16 = 2⁴

                    כל ספרה אחת בהקס מייצגת 4 ביטים.

                    לדוגמה:

                    0000 = 0
                    0001 = 1
                    0010 = 2
                    0011 = 3
                    0100 = 4
                    0101 = 5
                    0110 = 6
                    0111 = 7
                    1000 = 8
                    1001 = 9
                    1010 = A
                    1011 = B
                    1100 = C
                    1101 = D
                    1110 = E
                    1111 = F
                    

                    במקום לכתוב:

                    1101111010101101
                    

                    אפשר לחלק לארבע.

                    1101 1110 1010 1101
                    

                    ולהמיר כל קבוצה לספרת Hex:

                     D    E    A    D
                    

                    ולכן:

                    1101111010101101₂ = DEAD₁₆
                    

                    אותו מידע בדיוק.

                    צורה יותר קריאה (אני ממש לא מסכים😕 )


                    איך זה נראה באסמבלי?

                    באסמבלי, כשתראו מספר Hex, בדרך כלל תראו לפניו 0x.

                    לדוגמה:

                    mov rax, 0xDEAD
                    

                    ה־0x אומר:

                    "המספר כתוב בהקסדצימלי."

                    כלומר:

                    0xDEAD
                    

                    דרך אחרת לכתוב אותו ערך בבינארי:

                    1101 1110 1010 1101
                    

                    או בעשרוני:

                    57005
                    

                    שלושת הייצוגים מתארים את אותו ערך:

                    57005₁₀
                    = DEAD₁₆
                    = 1101111010101101₂
                    

                    לדוגמה:

                    mov rax, 0xFF
                    

                    או:

                    mov rax, 255
                    

                    מה שונה בהקס?

                    אבל:

                    בבסיס 16 אנחנו צריכים 16 ספרות, אבל יש לנו רק:

                    0-9
                    

                    פשוט ממשיכים באותיות:

                    A = 10
                    B = 11
                    C = 12
                    D = 13
                    E = 14
                    F = 15
                    

                    ולכן אפשר לראות דברים כמו:

                    0xDEAD
                    0xBEEF
                    0xCAFE
                    

                    אחד המפורסמים הוא:

                    0xDEADBEEF
                    

                    לסיכום:

                    בזיכרון של המחשב אין באמת "Hex".
                    Hex הוא דרך שבה אנחנו כותבים ומציגים מידע.
                    גם "בינארי" הוא דרך הייצוג שלנו למידע הדיגיטלי.
                    בפועל, בזיכרון יש מצבים פיזיקליים שאנחנו מייצגים כ־0 ו־1.
                    לכן אם בזיכרון יש למשל:

                    10101100
                    

                    אפשר להציג את אותם 8 ביטים כ:

                    10101100    ← בינארי
                    AC          ← Hex
                    172         ← עשרוני
                    

                    זה לא אומר שיש בזיכרון שלושה דברים שונים.

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


                    אז למה Hex?

                    כי כשעובדים בלואו לבל נתעסק המון בבינארי

                    אבל לכתוב בינארי זה סיוט:

                    11111111100000001111010110101010
                    

                    ב־Hex זה הופך ל:

                    0xFFF0F5AA
                    

                    הרבה יותר קצר, הרבה יותר קל לראות ולזהות מבנים. (עובדים עם זה המון..)

                    בגלל שכל ספרת Hex מייצגת בדיוק 4 ביטים, אפשר לעבור מבינארי לHex בצורה מאוד קלה.

                    לדוגמה:

                    1011 0010 1111 0100
                    

                    הופך ל:

                    B    2    F    4
                    

                    כלומר:

                    0xB2F4
                    

                    בעז"ה זה היה קצת חשבון @אלישי אשמח להצטרף לקבוצת תכנות זה יהיה יותר מסודר..
                    בעז"ה המשך יבוא (גילוי נאות: AI ערך פה ושם קצת אך לא כתב בעיקר פיסק)

                    דאבלד מנותק
                    דאבלד מנותק
                    דאבל
                    כתב נערך לאחרונה על ידי
                    #9

                    @Bugs-Bunny שכוייח, התחלתי בעבר כזה, ועצרתי כי לא היה דרישה כ"כ, אז שים לב, אולי כדאי להוסיף הלאה ולא לחזור על אותם דברים פעמיים.

                    arcivaty@gmail.com

                    B תגובה 1 תגובה אחרונה
                    2
                    • דאבלד דאבל

                      @Bugs-Bunny שכוייח, התחלתי בעבר כזה, ועצרתי כי לא היה דרישה כ"כ, אז שים לב, אולי כדאי להוסיף הלאה ולא לחזור על אותם דברים פעמיים.

                      B מנותק
                      B מנותק
                      Bugs Bunny
                      כתב נערך לאחרונה על ידי
                      #10

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

                      תגובה 1 תגובה אחרונה
                      1
                      • B Bugs Bunny

                        # קצת על בינארי והקס.

                        לפני שנמשיך קצת על : בינארי והקסדצימלי.

                        למה בינארי?

                        לבני אדם יש עשר אצבעות, אז איכשהו יצא שאנחנו סופרים בבסיס 10.
                        למחשב, לעומת זאת, אין אצבעות. יש לו מיליארדי טרנזיסטורים, שאפשר לחשוב עליהם בצורה מאוד מפושטת כמו מפסקים זעירים שיכולים להיות במצב כזה או במצב אחר.

                        דלוק או כבוי.

                        1 או 0.

                        וזהו.

                        לכן המידע הדיגיטלי במחשב מיוצג בבסיס 2, שנקרא בינארי (Binary).

                        אנחנו רגילים לכתוב:

                        0 1 2 3 4 5 6 7 8 9
                        

                        כי אנחנו עובדים בבסיס 10.

                        בבינארי יש רק:

                        0 1
                        

                        לכן המספר:

                        10
                        

                        בבסיס 2 הוא בעצם 2 בבסיס 10.

                        וזה מזכיר את המשפט (@בנימין-מחשבים )

                        "יש 10 סוגי אנשים: אלה שמבינים בינארית ואלה שלא."

                        אלה שמבינים בינארית יודעים ש־10 זה 2.

                        ואלה שלא... מחכים ל־9 הבאים. שלא יבואו. 😄


                        Bit

                        חשוב לזכור!

                        Bit הוא יחידת המידע הקטנה ביותר שיש במחשב

                        ביט אחד יכול להיות:

                        0
                        

                        או:

                        1
                        

                        כלומר יש לו שתי אפשרויות בלבד.

                        אם יש ארבעה ביטים:

                        1010
                        

                        יש לנו ארבעה ביטים נפרדים:

                        1 0 1 0
                        

                        כל אחד מהם יכול להיות 0 או 1.

                        ואם יש שמונה ביטים:

                        10101100
                        

                        יש לנו Byte אחד, כלומר 8 ביטים.

                        1 0 1 0 1 1 0 0
                        <------ 8 ------->
                        

                        זה חשוב כי בהמשך באסמבלי תפגשו כל הזמן במונחים כמו:

                        Bit
                        Byte   = 8 bits
                        Word   = 16 bits
                        DWORD  = 32 bits
                        QWORD  = 64 bits
                        

                        אז למה לא בינארי?

                        כי זה סיוט לבני אנוש...

                        נניח השורה הבאה.

                        1101111010101101
                        

                        זה בינארי אבל לא שקריא לבני אדם.
                        בקוד מכונה ובזיכרון אנחנו יכולים להיתקל ברצפים הרבה יותר ארוכים.

                        פה נכנס Hexadecimal, או בקיצור Hex.


                        הקס - בסיסי 16 בספירה

                        הקסדצימלי הוא פשוט בסיס 16.

                        במקום עשר ספרות כמו בבסיס 10:

                        0 1 2 3 4 5 6 7 8 9
                        

                        יש לנו 16 אפשרויות:

                        0 1 2 3 4 5 6 7 8 9 A B C D E F
                        

                        האותיות מייצגות את המספרים:

                        A = 10
                        B = 11
                        C = 12
                        D = 13
                        E = 14
                        F = 15
                        

                        למה בסיס 16?

                        עיקרון פשוט ומאוד שימושי:

                        16 = 2⁴

                        כל ספרה אחת בהקס מייצגת 4 ביטים.

                        לדוגמה:

                        0000 = 0
                        0001 = 1
                        0010 = 2
                        0011 = 3
                        0100 = 4
                        0101 = 5
                        0110 = 6
                        0111 = 7
                        1000 = 8
                        1001 = 9
                        1010 = A
                        1011 = B
                        1100 = C
                        1101 = D
                        1110 = E
                        1111 = F
                        

                        במקום לכתוב:

                        1101111010101101
                        

                        אפשר לחלק לארבע.

                        1101 1110 1010 1101
                        

                        ולהמיר כל קבוצה לספרת Hex:

                         D    E    A    D
                        

                        ולכן:

                        1101111010101101₂ = DEAD₁₆
                        

                        אותו מידע בדיוק.

                        צורה יותר קריאה (אני ממש לא מסכים😕 )


                        איך זה נראה באסמבלי?

                        באסמבלי, כשתראו מספר Hex, בדרך כלל תראו לפניו 0x.

                        לדוגמה:

                        mov rax, 0xDEAD
                        

                        ה־0x אומר:

                        "המספר כתוב בהקסדצימלי."

                        כלומר:

                        0xDEAD
                        

                        דרך אחרת לכתוב אותו ערך בבינארי:

                        1101 1110 1010 1101
                        

                        או בעשרוני:

                        57005
                        

                        שלושת הייצוגים מתארים את אותו ערך:

                        57005₁₀
                        = DEAD₁₆
                        = 1101111010101101₂
                        

                        לדוגמה:

                        mov rax, 0xFF
                        

                        או:

                        mov rax, 255
                        

                        מה שונה בהקס?

                        אבל:

                        בבסיס 16 אנחנו צריכים 16 ספרות, אבל יש לנו רק:

                        0-9
                        

                        פשוט ממשיכים באותיות:

                        A = 10
                        B = 11
                        C = 12
                        D = 13
                        E = 14
                        F = 15
                        

                        ולכן אפשר לראות דברים כמו:

                        0xDEAD
                        0xBEEF
                        0xCAFE
                        

                        אחד המפורסמים הוא:

                        0xDEADBEEF
                        

                        לסיכום:

                        בזיכרון של המחשב אין באמת "Hex".
                        Hex הוא דרך שבה אנחנו כותבים ומציגים מידע.
                        גם "בינארי" הוא דרך הייצוג שלנו למידע הדיגיטלי.
                        בפועל, בזיכרון יש מצבים פיזיקליים שאנחנו מייצגים כ־0 ו־1.
                        לכן אם בזיכרון יש למשל:

                        10101100
                        

                        אפשר להציג את אותם 8 ביטים כ:

                        10101100    ← בינארי
                        AC          ← Hex
                        172         ← עשרוני
                        

                        זה לא אומר שיש בזיכרון שלושה דברים שונים.

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


                        אז למה Hex?

                        כי כשעובדים בלואו לבל נתעסק המון בבינארי

                        אבל לכתוב בינארי זה סיוט:

                        11111111100000001111010110101010
                        

                        ב־Hex זה הופך ל:

                        0xFFF0F5AA
                        

                        הרבה יותר קצר, הרבה יותר קל לראות ולזהות מבנים. (עובדים עם זה המון..)

                        בגלל שכל ספרת Hex מייצגת בדיוק 4 ביטים, אפשר לעבור מבינארי לHex בצורה מאוד קלה.

                        לדוגמה:

                        1011 0010 1111 0100
                        

                        הופך ל:

                        B    2    F    4
                        

                        כלומר:

                        0xB2F4
                        

                        בעז"ה זה היה קצת חשבון @אלישי אשמח להצטרף לקבוצת תכנות זה יהיה יותר מסודר..
                        בעז"ה המשך יבוא (גילוי נאות: AI ערך פה ושם קצת אך לא כתב בעיקר פיסק)

                        א מנותק
                        א מנותק
                        אני רוצה משיח
                        כתב נערך לאחרונה על ידי אני רוצה משיח
                        #11

                        @Bugs-Bunny כתב:

                        לבני אדם יש עשר אצבעות, אז איכשהו יצא שאנחנו סופרים בבסיס 10.

                        טכנית, הערבים ספרו כך ראשונים, וזה השתרש אצל כולם.
                        בעזרת האבן עזרא, אגב.

                        י תגובה 1 תגובה אחרונה
                        0
                        • א אני רוצה משיח

                          @Bugs-Bunny כתב:

                          לבני אדם יש עשר אצבעות, אז איכשהו יצא שאנחנו סופרים בבסיס 10.

                          טכנית, הערבים ספרו כך ראשונים, וזה השתרש אצל כולם.
                          בעזרת האבן עזרא, אגב.

                          י מנותק
                          י מנותק
                          יעב"ץ
                          כתב נערך לאחרונה על ידי
                          #12

                          @אני-רוצה-משיח
                          תציין מקור.

                          תגובה 1 תגובה אחרונה
                          0
                          • א מנותק
                            א מנותק
                            אני רוצה משיח
                            כתב נערך לאחרונה על ידי
                            #13

                            @יעב-ץ כתב:

                            תציין מקור.

                            ויקיפדיה

                            השיטה המשלבת שימוש בבסיס 10 עם חשיבות לפי מיקום הספרה במספר פותחה בהודו במאה ה-6. הערבים אימצו אותה והשתמשו בה החל מהמאה ה-9 בעקבות ספר שפרסם המתמטיקאי מוחמד אבן מוסא אל-ח'ואריזמי בשנת 825, שבו סקר את השיטה והשימוש בה.

                            רבי אברהם אבן עזרא, ואחריו פיבונאצ'י, הביאו את השיטה לאירופה, בה אומצה במהירות כתחליף לשיטה הרומית, וזכתה לשימוש נרחב במסחר ולאחר מכן במדע.

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

                            י תגובה 1 תגובה אחרונה
                            0
                            • א אני רוצה משיח

                              @יעב-ץ כתב:

                              תציין מקור.

                              ויקיפדיה

                              השיטה המשלבת שימוש בבסיס 10 עם חשיבות לפי מיקום הספרה במספר פותחה בהודו במאה ה-6. הערבים אימצו אותה והשתמשו בה החל מהמאה ה-9 בעקבות ספר שפרסם המתמטיקאי מוחמד אבן מוסא אל-ח'ואריזמי בשנת 825, שבו סקר את השיטה והשימוש בה.

                              רבי אברהם אבן עזרא, ואחריו פיבונאצ'י, הביאו את השיטה לאירופה, בה אומצה במהירות כתחליף לשיטה הרומית, וזכתה לשימוש נרחב במסחר ולאחר מכן במדע.

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

                              י מנותק
                              י מנותק
                              יעב"ץ
                              כתב נערך לאחרונה על ידי יעב"ץ
                              #14

                              @אני-רוצה-משיח
                              נו נו.
                              ג"כ מקור.

                              מעבר לכך, מה שהבאת לא מתייחס ל10 כבסיס, אלא למיקום הספרות.
                              ההתייחסות ל10 כבסיס, נמצאת כבר בתורה בפרשת בראשית, במנין שנות חיי האנשים.

                              25802 תגובה 1 תגובה אחרונה
                              2
                              • י יעב"ץ

                                @אני-רוצה-משיח
                                נו נו.
                                ג"כ מקור.

                                מעבר לכך, מה שהבאת לא מתייחס ל10 כבסיס, אלא למיקום הספרות.
                                ההתייחסות ל10 כבסיס, נמצאת כבר בתורה בפרשת בראשית, במנין שנות חיי האנשים.

                                25802 מנותק
                                25802 מנותק
                                2580
                                מדריכים
                                כתב נערך לאחרונה על ידי
                                #15

                                @יעב-ץ כתב:

                                למיקום הספרות

                                נראה כוונתו לצורת הספרות

                                בקרו - https://yo-2580.github.io/profile2580/

                                י תגובה 1 תגובה אחרונה
                                0
                                • 25802 2580

                                  @יעב-ץ כתב:

                                  למיקום הספרות

                                  נראה כוונתו לצורת הספרות

                                  י מנותק
                                  י מנותק
                                  יעב"ץ
                                  כתב נערך לאחרונה על ידי
                                  #16

                                  @2580
                                  לאו.
                                  אלא למיקום הספרות.
                                  עיין בדבר ותמצא.

                                  תגובה 1 תגובה אחרונה
                                  0

                                  שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

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

                                  בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

                                  הרשמה התחברות

                                  • התחברות

                                  • אין לך חשבון עדיין? הרשמה

                                  • התחברו או הירשמו כדי לחפש.
                                  • פוסט ראשון
                                    פוסט אחרון
                                  0
                                  • חוקי הפורום
                                  • פופולרי
                                  • לא נפתר
                                  • משתמשים
                                  • חיפוש גוגל בפורום
                                  • צור קשר