עבור לתוכן

מישהו מכיר תחליף ל BitArray בC#?

Featured Replies

פורסם

מישהו מכיר איזה מימוש של מערך ביטים לשימוש ב C# אשר קצת יותר שימושי מהחרא חסר הערך שהם קוראים לו BitArray?

פורסם

איזה פעולות אתה צריך שלא קיימות שם?

הרי בסה"כ הBitArray זה מערך מסוג bool שמיישם כמה פעולות ביטים בסיסיות כמו AND, OR, XOR וכו'

פורסם

איזו פונקציונליות חסרה לך בדיוק?

פורסם
  • מחבר

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

והדבר שבאמת הביא לי את הסעיף עם ה BitArray המחורבן הזה הוא העובדה שה Bitwise Operations (לדוגמא AND OR XOR) לא רק מחזירות את התוצאה של האופרציה אלא משנות את המשתנה המבצע עצמו.

לדוגמא

baResult = baPattern1.And(baPattern2)

לא רק תחזיר את התוצאה ל baResult, אלא גם ל baPattern1.

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

פורסם

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

MSDN:

Performs the bitwise AND operation on the elements in the current BitArray against the corresponding elements in the specified BitArray

למה לא כתוב?

פונקציית השוואה: equal ?

וצריך לממש פונקצית שמחזירה כמה ביטים דלוקים ... :P

פורסם
  • מחבר

נכון, אבל הפנוקצייה מחזירה BitArray.

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

equals לא עובד. :)

פורסם

תעשה override על : equal .

בכל מקרה לא ניראה לי בעיה ...

פורסם
  • מחבר

ומה, לולאה?

איטי מדי.

אולי אני פשוט אשתמש ב BitVector32, אשפץ אותו קצת. קצת מציקה המגבלה של 32 ביטים, אבל אני חושב שאני לא אעבור אותה.

פורסם

איטי מידי?

סקרנות, מה אתה כותב מערכת RealTime ?

C# לא נחשבת לשפה מהירה .. (כמו JAVA) ..

פורסם
  • מחבר

המערכת היא לא Real Time במובן הקלאסי של המילה.

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

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

Java אני שונא.

כל התהליך של השוואת מערכי הביטים בא לתמוך במערך ההחלטות של המכונה.

במצב אופטימלי אם הייתי יכול להרשות לעצמי מבחינת עוצמת חישוב

הייתי מבצע:

75 עצרת חלקי 45 עצרת איטרציות של פעולה שכוללת:

42 פעמים:

פעולת AND אחת

פעולת XOR אחת

פעולת השוואה אחת

ופעולת ספירה אחת

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

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

אבל גם שם לבצע לולאה בשביל להשוות כמה ביטים זה איטי בטירוף.

פורסם

אני לא מבין גדול, אבל שקלת לכתוב את החלק הזה באסמבלר?

פורסם

אני לא מבין גדול, אבל שקלת להשתמש באסמבלר בחלק הזה?

ארכיון

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

דיונים חדשים