Endianness attiecas uz secīgu secību, kādā baiti tiek sakārtoti lielākās skaitliskās vērtībās, kad tie tiek saglabāti atmiņā vai pārraides laikā. Divi galvenie eksistējošo endianšu veidi ir lielais endians un mazais endians. Lielais endians ir visnozīmīgākais baits mazākajā adresē, un mazais endians ir vismazāk nozīmīgais baits mazākajā adresē. Programmēšanā C endialitātei ir nozīme, ja bināros datus lasāt tieši, neizmantojot ekstrakcijas operatorus. Iepazīstieties ar risinājumu un detalizētu piedāvātā koda profesionālu sadalījumu, lai noteiktu sistēmas galīgumu. Turklāt jūs uzzināsiet par bibliotēku un funkciju nozīmi šīs šķietami sarežģītās problēmas risināšanā.
#include<stdio.h>
int main()
{
unsigned int i = 1;
char *c = (char*)&i;
if (*c)
printf("Little endian");
else
printf("Big endian");
return 0;
}
Kodeksa soli pa solim skaidrojums
Sniegtais koda fragments ir rakstīts C — vispārējas nozīmes procesuālās programmēšanas valodā, kas noteiks sistēmas galīgumu.
Vispirms analizēsim #include
Taustiņu funkcija un mainīgie
Tālāk tiek deklarēta galvenā funkcija. Tas ir jebkuras C programmas ieejas punkts. Šajā funkcijā neparakstīts vesels skaitlis i tiek deklarēts un inicializēts uz 1, un rakstzīmes rādītājs “c” tiek deklarēts un inicializēts uz i adresi.
Sekojošais nosacījuma paziņojums pārbauda, vai pirmais baits simbolā, uz kuru norāda 'c', ir 1 vai 0. Ja tas ir 1, sistēma ir maza, pretējā gadījumā tā ir liela endiana.
Šī nosacītā pārbaude veido programmas kodolu, un tā ir loģika, ko mēs izmantojam, lai noteiktu sistēmas endialitāti.
Funkcija printf tiek izmantota, lai parādītu “Little endian” vai “Big endian”, pamatojoties uz mūsu nosacījuma pārbaudes rezultātu. Tas pieder stdio.h bibliotēkai un tiek izmantots izvades formatēšanai.
Izpratne par bibliotēkām
Stdio.h ir standarta C programmēšanas bibliotēka, kas ietver tipu, makro un funkciju definīcijas tādiem uzdevumiem kā ievades/izvades darbības, piekļuve failiem, virkņu apstrāde utt. Tai ir būtiska loma izvades attēlošanā ekrānā.
Izpratne par datu veidiem un rādītājiem
C programmēšanā norādes ir mainīgie, kas saglabā citu mainīgo adreses. Šeit 'char *c' ir rādītājs uz rakstzīmi.
Bitu operators “&” tiek izmantots, lai iegūtu “i” adresi un piešķirtu tai “c”. Šīs operācijas mērķis ir iegūt vesela skaitļa mainīgā 'i' baitu līmeņa attēlojumu, lai pārbaudītu tā endialitāti.
Rezumējot, sistēmas endialitātes noteikšana ir ļoti svarīga noteiktos zema līmeņa programmēšanas uzdevumos, un šis kods nodrošina vienkāršu metodi, lai pārbaudītu endialitāti, izmantojot C programmēšanas valodu. Turklāt, izprotot šajā koda daļā izmantotās bibliotēkas, funkcijas, datu tipus un norādes, tas būs spēcīgs pamats jūsu ceļojumam C programmēšanas jomā.