המרות - בינארי, דצימלי, הקסדצימלי וקידוד - נא עזרתכם - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

המרות - בינארי, דצימלי, הקסדצימלי וקידוד - נא עזרתכם


alon_cohen

Recommended Posts

הי,

 

יש לי איזשהו חור בהבנה שאשמח לעזרתכם על-מנת לסתום אותו בידע נכון.

 

ברור לי וידוע הנתון הבא:

- המחשב שלנו עובד בשיטה הבינארית בלבד, הוא לא יודע לספור עד 10 לדוגמא.

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

 

השאלה שלי היא:

- מה הקשר בין כל נושא הקידוד (כמו Base 64) להמרות כמו בינארי ודצימלי וכו' ?

משמע- איפה בתהליך של תוכנה או בא לידי ביטוי הקידוד, ההמרות והעיבוד של המחשב ?

אשמח אם מישהו יוכל לעשות לי סדר ב Flow של כל המושגים הללו בריצה של תוכנה. (אשמח לדוגמא כאשר אני גולש בדפדפן לצורך העניין ) 

 

תודה מראש. 

קישור לתוכן
שתף באתרים אחרים

כל השיטות האלו הן שיטות ספירה לפי בסיס שונה כולל השיטה העשרונית.

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

כל ערך בינארי ניתן לתצוגה בכל השיטות האחרות ובכולן הוא מייצג את אותו ערך בינארי בדיוק.

ויש גם שיטה אוקטלית שזה מ 0 עד 7.

קישור לתוכן
שתף באתרים אחרים

השאלה שלו היא בכלל לא מה זה בינארי או איך סופרים בבינארי :|

 

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

 

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

קישור לתוכן
שתף באתרים אחרים

ציטוט של xc1te

השאלה שלו היא בכלל לא מה זה בינארי או איך סופרים בבינארי :|

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

 

לכן קשה לענות עליה בצורה תמציתית ומדויקת.

 

אבל ביסוד העניין - זה כמו שאמרת. בחומרת מחשב יש אותו חשמליים ורמות מתח, כאשר בד"כ יש שתי רמות אפשריות בכל נקודה - "יש" או "אין". אז נוח לנו, לבני האדם, לתרגם את זה ל"1" ו"0", ולהסתכל על זה בתור מספרים בבסיס ספירה בינארי. ובמצבים מסוימים, יכול להיות יותר נוח לאגד כמה "ביטים" כאלה, ולהסתכל עליהם כמספרים בבסיס ספירה אחר - 10, 16, 8. הכל כתלות בעניין.

 

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

 

דרך אגב, בחומרה מודרנית יש שימוש נרחב בתאים חשמליים שיכולים לשמור ולהבדיל בין כמה רמות מתח שונות. אז עקרונית אפשר היה לדבר על "ביטים" שהם לא בבסיס 2 בכלל, אלא בבסיס אחר. כמובן, כדי לא לשנות הרגלי עבודה שהשתרשו במשך עשורים ולא לשבור תאימות לרוב החומרה בשוק, שנוח לייצגה בבסיס 2, בונים תאים כאלה רק עם מספר מתח שהוא חזקה כלשהי של 2, ואז פשוט כל תא מייצג כמה ביטים בינאריים (4 רמות = 2 ביטים, 8 רמות = 3 ביטים). ע"ע כונני עם MLC או TLC.

קישור לתוכן
שתף באתרים אחרים

חברים תודה התשובות.

אני אנסה לשאול את השאלה יותר בפשטות כי אולי סיבכתי,

 

בנושא הבינארי ברור לי לחלוטין וגם נושא הקידוד.

קידוד - בגדול מדובר בקידוד ספרות, סימנים ואותיות למספרים בינאריים - לדוגמא ASCI ויוניקוד
עוד דוגמא מוכרת- זה להשתמש בקידוד של base 64 כדי להכניס מידע בינארי(כמו תמונה) לקובץ ASCI כמו HTML.
במקרים בהם הערוץ לא מאפשר לנו העברה של מידע בינארי כמו אימייל נצטרך להשתמש בקידוד.

 

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

 




 

 

קישור לתוכן
שתף באתרים אחרים

נראה לי שאתה קצת מבולבל מהכפילות במושגים.

 

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

 

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

 

הסיבה שצריך קידודים כמו Base64 נעוצה בכך שהיסטורית, מערכות שונות שמטפלות במידע טקסטואלי, כמו מדפסות, כמו אימייל וכו', לא ידעו לטפל בכל רצף ביטים אפשרי בצורה נכונה. זה נבע מכך שהתבצעו הנחות מסוימות על הקלט, שאולי מתקיימות כשעובדים עם טקסט, אבל לא מתקיימות כשעובדים עם רצף ביטים כללי. כמו כן, בקידודי טקסט כמו ASCII, לפני UNICODE, לא הייתה משמעות אחידה לחלק מהתווים, והפירוש שלהם השתנה כתלות בקידוד השפה שבחרת לעצמך. למשל כדי לקרוא קובץ טקסט רגיל (לא UNICODE) שמכיל תווים בעברית, המערכת צריכה להיות מוגדרת לשפה העברית. אחרת זה ייראה כמו רצף תווים מוזר בג'יבריש או בשפה אחרת.

 

אז פיתחו קידודים כמו Base64 שהמטרה שלהם היא לקודד כל רצף ביטים באמצעות אחד מ64 תווים, שהם משותפים בכל קידוד נפוץ, וגם ניתנים להדפסה בכל מערכת. כך אתה יכול להיות בטוח ששום פיסת מידע לא תלך לאיבוד ולא תשתבש כשתעביר את הקובץ שלך דרך מערכות כאלה ואחרות.

 

זה כנראה עדיין לא עונה על השאלה שלך.

ציטוט של alon_cohen

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

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

 

למה צריך בסיס 10 ו16? כמו שאמר Ivan וכמו שאמרתי בתגובתי הראשונה - פשוט כי זה נוח יותר לנו, לבני האדם, לעבוד עם מספרים בבסיס 10 או 16 מאשר עם מספרים בבסיס 2.

 

קישור לתוכן
שתף באתרים אחרים

ציטוט של alon_cohen

חברים תודה התשובות.

אני אנסה לשאול את השאלה יותר בפשטות כי אולי סיבכתי,

...

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

 

 

 

...תגיד, אתה באמת שאלת עכשיו למה צריך בסיס 10?

 

תנסה ללכת לירקן ולשלם על בננות בבסיס 2. הוא כבר יסביר לך למה :)

 

קישור לתוכן
שתף באתרים אחרים

בסיס 2 (בינארי) כי ככה החומרה עובדת.
בסיס 10 (עשרוני) כי ככה בני האדם מבינים.
בסיסים כמו 8, 16, 32 או כל חזקה של 2 נועדה על מנת לקצר את האורך של מספרים בינאריים ולאפשר המרה פשוטה לבסיס 2.

בסיס 2 (בינארי) כי ככה החומרה עובדת.
בסיס 10 (עשרוני) כי ככה בני האדם מבינים.
בסיסים כמו 8, 16, 32 או כל חזקה של 2 נועדה על מנת לקצר את האורך של מספרים בינאריים ולאפשר המרה פשוטה לבסיס 2.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...