Avatar billede jorgetu Nybegynder
20. september 2005 - 15:25 Der er 11 kommentarer og
1 løsning

Oversæt venligst, binær hokus pokus.

Jeg skal konvertere et tal til bytes via følgende opskrift, men jeg fatter den ikke helt.

"3 low-order bytes (LSB first) of the number."

Så, hvis man har et tal fx 129, hvad er så 3 low-order bytes (lsb first) af dette?

mvh
Tue
Avatar billede screem_brille Novice
20. september 2005 - 15:52 #1
umidedlbart vil jeg mene det skal se således ud : 1001 0010 0001 så har du netop 9 først  (som er det lavest betydense ciffer først)
Avatar billede screem_brille Novice
20. september 2005 - 15:53 #2
normalt angiver man det i MSB og der ville det se således ud : 0001 0010 1001
Avatar billede arne_v Ekspert
20. september 2005 - 16:13 #3
hex: 0x00 0x00 0x81

decimal: 0 0 129
Avatar billede arne_v Ekspert
20. september 2005 - 16:13 #4
screem>

129 kan sagtens være i en byte
Avatar billede arne_v Ekspert
20. september 2005 - 16:14 #5
hvis vi snakker little endian og noget stream agtigt så vil man skrive

0x81 0x00 0x00 (129 0 0)

men jeg synes ikke at 3 byte lyder stream orienteret)
Avatar billede screem_brille Novice
20. september 2005 - 19:08 #6
arne_v det skulle konverteres til binær, og ikke i hex ? 0x81 har intet med binær at gøre
Avatar billede arne_v Ekspert
20. september 2005 - 19:28 #7
jeg læste det som integer i binært format ikke som at det skulle angives
i 2 tals systemet

men det er trivielt at oversætte mellem 2 og 16 tals systemerne

10000001 00000000 00000000

hvis vi streamer i little endian
Avatar billede jorgetu Nybegynder
20. september 2005 - 20:05 #8
Ok, dårligt eksempel....jeg prøver lige med et større tal.

Udgangspunktet er en integer med værdi 129.
Den bliver jo normalt til 10000001 i binært, dvs 81 i hex.

Men hvad bliver den hvis vi bruger
"3 low-order bytes (LSB first) of the number."

så bliver det 0x81 0x00 x00.

Ok, hvad så med hex 0x0412 integer = 1042 bliver det så til

0x4 0x1 0x2 eller ???

Ja, undskyld men jeg har ikke fedtet med bit og bytes siden de glade cmd 64'er dage...
Avatar billede arne_v Ekspert
20. september 2005 - 21:28 #9
0x0412 bliver

0x12 0x04 0x00

hvis vi tager LSB først
Avatar billede jakoba Nybegynder
22. september 2005 - 15:58 #10
"3 low-order bytes (LSB first) of the number."

LSB  står for  Least Significant Byte  (den mindst betydningsfulde)

Tilsvarende kan man tale om mindst betydningsfulde ciffer i et tal.
fx dit tal  '129' 
hvis man ændrer lidt på 1-tallet gør det en stor forskel '029' er mindre end 1 fjerdedel så stort et tal som '129'. det forreste ciffer har stor betydning.
men hvis man ændrer 9'tallet gør det ikke så meget '126' er ret tæt på '129'.

så i tallet 129 er 9 det mindst betydende ciffer
2 er det mæstmindst betydende ciffer
og 1 er det trediemindst betydende ciffer

Ofte i tal er de mindst betydende cifre så 'betydningsløse' at vi ikke engang gider sige dem. "Der er 6 millioner mennesker i Danmark". Det siger vi, men chancen for at det er præcist sandt mikroskopisk lille. der kan sagtens være 6000001 eller 6000027 eller sågar 6123456 mennesker istedet for. Men idet vi snakker om det er det præcicionen i tallet ligegyldig nok til at vi ikke gider nævne de mindre betydningsfulde cifre.

low-order byte har samme mening. jo midre bedydningsfuldt jo lavere orden. Hvis vi igen skifter til cifre istedet for bytes er 9 det ciffer der har lavest orden og 1 er det ciffer der har højest orden.

så opgaven går ud på at lave dit tal om til bytes:
129  ->  00000000 00000000 00000000 10000001
og så skrive de 3 bytes med lavest orden med den laveste først
        00000000 00000000 00000000 10000001
lavesthed        4        3        2        1

det bliver
        10000001 00000000 00000000
lavesthed        1        2        3

mvh JakobA
Avatar billede jakoba Nybegynder
22. september 2005 - 16:01 #11
Bvadr. prøver igen:

og så skrive de 3 bytes med lavest orden med den laveste først
          00000000 00000000 00000000 10000001
lavesthed        4              3              2              1

det bliver
          10000001 00000000 00000000
lavesthed        1              2              3
Avatar billede arne_v Ekspert
04. november 2005 - 20:18 #12
Tid at få afsluttet her ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester