Hej jag håller på att översätta lite php kod men jag
har kört lite fast på en grej
kan någon säga vad denna gör ?
ord($data[1])<<8)+(ord($data[2])<<16
ord vet jag vad det e men
<<8 och sedan nästa <<16 är det att den byter bitar eller vad e det ?
4 svar · 366 visningar · startad av Nickemannen
Hej jag håller på att översätta lite php kod men jag
har kört lite fast på en grej
kan någon säga vad denna gör ?
ord($data[1])<<8)+(ord($data[2])<<16
ord vet jag vad det e men
<<8 och sedan nästa <<16 är det att den byter bitar eller vad e det ?
Betyder ungefär 'flytta 8 bitar åt vänster'.
En fråga till varför skulle man vilja göra det ? fattar inte riktigt
Det kan finnas en och miljoner anledningar till det, vad gör t.ex applikationen som du tagit kodsnutten ifrån?
Det skulle jag också vilja veta!
Det enda§ jag har fattat är att tex:
10 << 1 = 5
10 >> 1 = 20
Fel, 10 << 1 (flytta bitarna ett steg vänster) blir 20 och 10 >> 1 (flytta bitarna ett steg höger) blir 5.
Varför får man detta resultat? Jo, förutsatt att man förstår binär aritmetik:
decimalt 10 representeras binärt av 00001010, flyttar man bitarna ett steg vänster så fås det binära talet 00010100:
00001010
00010100 <--- bitarna skiftat ett steg vänster
00010100 i decimalform är 20.
Samma sak höger:
00001010
00000101 <--- bitarna skiftat ett steg höger = 10.