Kezdőoldal » Számítástechnika » Programozás » 4 bájton tárolt számból hogy...

4 bájton tárolt számból hogy lehet kinyerni a számot alkotó bájtok értékeit? (bővebben lent)

Figyelt kérdés

Adott egy bármilyen szám, amely a nagysága miatt 4 bájton van tárolva, például: 1457664 (de lehet bármilyen szám).

Az adott számot alkotó bájtok mindegyikének értékét milyen művelettel lehet megtudni? Mit kell alkalmazni?



2022. szept. 23. 16:54
1 2 3
 11/30 A kérdező kommentje:

Az átalakítást így írtam meg:

[link]

Tudsz segíteni a kód módosítását illetően abban, hogy akár átalakításkor, akár visszaalakításkor az előjelekre is figyeljen?

2022. szept. 24. 10:59
 12/30 anonim ***** válasza:
59%

Egyébként az eddigi válaszok nem jók azt figyelembe véve, ha szó szerint a kérdést értem. Azaz ha konkrétan a bájtok értékeit olvasnánk ki akkor ugyanazon szám esetében eltérő sorrendet tapasztalnánk eltérő endianness-el (bájtsorrend) rendelkező hardver esetében, az eddig leírtak endianness függetlenek azaz az adott bájtsorrendtől függetlenül egységesen működne, nem a nyers bájtok értékeinek kinyerését szolgálják. Bár általában tapasztalatom szerint a bájtsorrend a legtöbb hardveren little-endian, de big-endian esetében pont fordítva lenne a sorrend.

A b_pointer változó ami bájt típusú pointer, ennek értékét állítottam be a test_varitable longint típusú változó kezdőcímére ( b_pointer := @test_varitable;

). Majd a += operátorral egyesével léptettem a b_pointer által mutatott memóriacímet és kiolvastam azoknak értékeit.

[link]

2022. szept. 24. 13:40
Hasznos számodra ez a válasz?
 13/30 Szirty ***** válasza:
29%

"de big-endian esetében pont fordítva lenne a sorrend."


A byte sorrendnek (a kérdés szempontjából) semmilyen jelentősége nincs.

2022. szept. 24. 13:42
Hasznos számodra ez a válasz?
 14/30 anonim ***** válasza:
13:42 Hogyne lenne. Arra világítottam rá előzőleg, hogy miért.
2022. szept. 24. 15:12
Hasznos számodra ez a válasz?
 15/30 Szirty ***** válasza:
Akkor nem értetted a kérdést.
2022. szept. 24. 15:16
Hasznos számodra ez a válasz?
 16/30 anonim ***** válasza:

"Az adott számot alkotó bájtok mindegyikének értékét milyen művelettel lehet megtudni?"

Válasszuk ketté:

1.: a konkrét adott hardveren az adott számra vonatkozóan

2.: hardverfüggetlenül az adott számra vonatkozóan


"A byte sorrendnek (a kérdés szempontjából) semmilyen jelentősége nincs."

Akár az 1. vagy 2. esetre vagyunk kíváncsiak akkor is jelentősége van annak, hogy milyen a byte sorrend (Konkrétan lehet rá írni hardverfüggetlen programot pl oktatás céljából ami kiszámítja az inputba megadott szám nem csak egy fajta bájtsorrend szerinti bájtonkénti értékeit). Az shl és shr hardverfüggetlenül működik persze az adott hardveren értelmezett értékek erejéig (, ha már megnézzük a nyers bájtjait akkor már természetesen nem hardverfüggetlen).


Ha 4 bájtos integer shift (shl, shr) műveleteiről beszélünk kizárólag és abban a konkrét alkalmazásban/esetben lényegtelen a bájtsorrend akkor triviálisan nem számít a bájt sorrend.

2022. szept. 25. 02:13
Hasznos számodra ez a válasz?
 17/30 anonim ***** válasza:

Bájtsorrend akkor számit, ha a kérdezőnek számit.

Amúgy egy négy darabos halmaz az eredmény. Bájtok halmaza.


Az első válaszadó megoldása is jó, és a shifteléses is.


[oo..ooo.] shl 2 = [..ooo....]

2022. szept. 25. 06:41
Hasznos számodra ez a válasz?
 18/30 A kérdező kommentje:
A sorrend azért számít, mert 4 darab byte alkotja a számot. Balrol jobbra meg lehet határozni a sorrendiséget.
2022. szept. 25. 08:40
 19/30 Szirty ***** válasza:

Nem számít semmit a sorrend, mert a kérdés az volt hogyan lehet szétszedni.

Akármilyen sorrendben vannak a bájtok, a szétszedés módszere (a hogyan) nem változik, ugyanúgy kell szétszedni.

2022. szept. 25. 08:59
Hasznos számodra ez a válasz?
 20/30 anonim ***** válasza:

"mert a kérdés az volt hogyan lehet szétszedni."


A kérdés valóban ez volt, de a kérdező felől volt arra is utalás, hogy miképpen lehet az eredményül kapott byte-okból az eredeti számot visszaállítani. Ehhez meg szükséges a byte sorrend ismerete.

2022. szept. 25. 09:06
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!