[Homework] OOP {June 2015} - Static Members And Namespaces - Problem{6} - BitArray
По условие трябваше да направя binary-to-decimal conversion, но просто не се събира в decimal.
Приемам всякакви препоръки и критики.
По условие трябваше да направя binary-to-decimal conversion, но просто не се събира в decimal.
Приемам всякакви препоръки и критики.
Здравей!
Условието казва "binary to decimal", но не се бъркай с локалните типове в C# - означава от двоична, в десетична система.
За принтиране ще ти е лесно да използваш System.Numerics.BigInteger, за съхранение на едно например 100 000 битово число.
Що се отнася до вътрешните ти данни, малко неефективно е да пазиш един бит в цял 32 битов int. Ако искаш да си 4 пъти по-ефективен откъм памет, пази бита в byte. Ако искаш да направиш един наистина cookie cutter клас, откъм памет, постарай се в един байт да се пазят 8 бита, не само един (но това пък ще направи операциите с класа по-бавни откъм процесорно време). Останалото са оптимизации.
Иначе изглежда добре! :)
Edit:
Пример за паметта, нужна за 100 000 битово число:
100 000 bits = 12 500 bytes = 12.5 KB
При пазене 1 бит -> int (32 bit):
32 x 100 000 bits = 400 000 bytes = 400 KB
При пазене 1 бит -> byte (8 bit):
8 x 100 000 bits = 100 000 bytes = 100 KB
мдаа, подвел съм се жестоко от условието.. :D
Мерси за коментара. Току що се сетих, че e по-ефективно ако битовете се пазят в bool масив. 1boolean = 1 byte