25.07.2017 Views

Intro-CSharp-Book-v2015

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

284 Въведение в програмирането със C#<br />

Представянията Big-Endian и Little-Endian<br />

При цели числа, които се записват в повече от един байт, има два варианта<br />

за наредба на байтовете в паметта:<br />

- Little-Endian (LE) – байтовете се подреждат от ляво надясно от наймладшия<br />

към най-старшия. Това представяне се използва при Intel<br />

x86 и Intel x64 микропроцесорните архитектури. Това е типично за C#<br />

върху Intel процесор.<br />

- Big-Endian (BE) – байтовете се подреждат от ляво надясно от найстаршия<br />

към най-младшия. Това представяне се използва при<br />

PowerPC, SPARC и ARM микропроцесорните архитектури. Това е<br />

типично за представянето на числата в Java.<br />

Ето един пример: числото A8B6EA72(16) се представя в двете наредби на<br />

байтовете по следния начин:<br />

0x72<br />

0xEA<br />

0xB6<br />

0xA8<br />

0xA8<br />

0xB6<br />

0xEA<br />

0x72<br />

Little-Endian (LE)<br />

for 0xA8B6EA72<br />

Big-Endian (BE)<br />

for 0xA8B6EA72<br />

Има някои класове в C#, които предоставят възможности за дефиниране на<br />

това кой стандарт за подредба на байтовете да се използва. Това е важно<br />

при операции като изпращане / приемане на потоци от информация по<br />

мрежата и други видове комуникация между устройства, произведени по<br />

различни стандарти. Полето IsLittleEndian на BitConverter класа<br />

например показва в какъв режим класът работи и как се съхраняват<br />

данните за текущата компютърна архитектура.<br />

Представяне на реални числа с плаваща запетая<br />

Реалните числа са съставени от цяла и дробна част. В компютърната<br />

техника те се представят като числа с плаваща запетая (floating-point<br />

numbers). Всъщност това представяне идва от възприетия от водещите<br />

производители на микропроцесори Standard for Floating-Point Arithmetic<br />

(IEEE 754). Повечето хардуерни платформи и езици за програмиране<br />

позволяват или изискват изчисленията да се извършват съгласно<br />

изискванията на този стандарт. Стандартът определя:<br />

- Аритметични формати: набор от двоични и десетични данни с плаваща<br />

запетая, които са съставени от краен брой цифри.<br />

- Формати за обмен: кодировки (битови низове), които могат да бъдат<br />

използвани за обмен на данни в една ефективна и компактна форма.<br />

- Алгоритми за закръгляване: методи, които се използват за закръгляване<br />

на числата по време на изчисления.<br />

- Операции: аритметика и други операции на аритметичните формати.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!