עבור לתוכן

נתון מספר בן 4 ספרות. כיצד שולפים את 2 ספרותיו האחרונות?

Featured Replies

פורסם

האם על ידי מודולו 100?

פורסם

נשמע לא רע, לך על זה.

פורסם

נשמע הגיוני.

פורסם

תקשיב לזה שלמטה ;)

פורסם

איזה בלאגן.

לא, SHIFT RIGHT ב-8 לא יתן לך את "3 הספרות הנמוכות". אפילו אם היית עובד בבסיס בינארי (אבל אתה מעוניין בדצימלי, אני מניח, כלומר בסיס 10). הוא גם לא מביא לך את הביטים הנמוכים, אלא את הביטים הגבוהים.

אם אתה מעוניין לקבל את שתי הספרות הנמוכות בבסיס 16 אז אתה יכול לעשות משהו כמו:

low_digits = number & 0xFF

אם number הוא 1ABCD4 אז low_digits יהיה D4.

("&" הוא AND על סיביות ב-C)

פורסם

איזה בלאגן.

לא, SHIFT RIGHT ב-8 לא יתן לך את "3 הספרות הנמוכות". אפילו אם היית עובד בבסיס בינארי (אבל אתה מעוניין בדצימלי, אני מניח, כלומר בסיס 10). הוא גם לא מביא לך את הביטים הנמוכים, אלא את הביטים הגבוהים.

אם אתה מעוניין לקבל את שתי הספרות הנמוכות בבסיס 16 אז אתה יכול לעשות משהו כמו:

low_digits = number & 0xFF

אם number הוא 1ABCD4 אז low_digits יהיה D4.

("&" הוא AND על סיביות ב-C)

הכל טוב ויפה, רק חבל שגילית לו הכל.. ככה לפחות היה לומד משהו... :kopfpatsch:

פורסם

מה שאתה אומר זה שכתבת פתרונות שגויים בכוונה?

פורסם

האם על ידי מודולו 100?

:yelclap:

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

פורסם
  • מחבר

איזה בלאגן.

לא, SHIFT RIGHT ב-8 לא יתן לך את "3 הספרות הנמוכות". אפילו אם היית עובד בבסיס בינארי (אבל אתה מעוניין בדצימלי, אני מניח, כלומר בסיס 10). הוא גם לא מביא לך את הביטים הנמוכים, אלא את הביטים הגבוהים.

אם אתה מעוניין לקבל את שתי הספרות הנמוכות בבסיס 16 אז אתה יכול לעשות משהו כמו:

low_digits = number & 0xFF

אם number הוא 1ABCD4 אז low_digits יהיה D4.

("&" הוא AND על סיביות ב-C)

לא הבנתי כלום

פורסם

& זו פעולת וגם על ביטים.

x & 0xFF

זה בעצם לעשות וגם בין כל הביטים של X לבין ביטים ש8 הLSB שלהם הוא 1, והשאר 0.

זה בעצם שולף לך את הLSB.

פורסם
  • מחבר
:xyxthumbs:

ארכיון

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

דיונים חדשים