2014-es emelt informatika érettségiben mit jelent a legalacsonyabban tárolt ip cím?
A válaszomban feltételezem, hogy azért a binárist vágod.
Vannak ún. bitműveletek, ami közül a jobbra és a balra shiftelés lesz érdekes, valamint a VAGY. Vegyük a következő 8 biten ábrázolt számot:
00001100 (vagyis 12)
Ha ezt eggyel balra shiftelem, akkor ezt a számot kapom:
00011000 (vagyis 24)
Ha pedig eggyel jobbra shiftelem, akkor pedig:
00000110 (vagyis 6)
Szóval, mint ahogy a kolléga említette, az IP cím 4 darab 8 biten tárolt előjel nélküli számból áll. Például:
127.0.0.1
---------
01111111 (127)
00000000 (0)
00000000 (0)
00000001 (1)
Első lépésként a 8 bites byte adattípusról cast-oljuk (típuskényszerítjük) 32 bites előjel nélküli integerré (unsigned integer). Maga a számok ugyanazok maradnak, csak immáron több helyet foglalnak el a memóriában:
00000000 00000000 00000000 01111111 (127)
00000000 00000000 00000000 00000000 (0)
00000000 00000000 00000000 00000000 (0)
00000000 00000000 00000000 00000001 (1)
Az első számot shifteljük balra 24-gyel, a másodikat 16-tal, a harmadikat pedig 8-cal, az utolsót nem bántjuk (ezeknek most lényegtelen, hogy mi az értéke):
01111111 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000001
Most bitenként VAGY-oljük össze az így kapott 32 biten tárolt számokat:
01111111 00000000 00000000 00000001
Tehát amit neked tudni kell:
1) C#-ban a cast-olás 8 bitről 32 bites előjel nélküli számra így néz ki:
byte b = 127;
uint x = (uint)b;
2) Balra shiftelni egy számot így lehet:
uint x = 1;
uint y = x << 1; //[változó] << [hány bittel tolod balra]
3) Két számot pedig összeVAGYolni így lehet:
uint x = 1;
uint y = 2;
uint z = x | y;
A többire merem remélni, hogy rá fogsz jönni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!