|
[Jul. 30th, 2010|04:32 pm] |
Eu, ja nu šito izlasa kāds C koderis, vai vēl labāk – mikrokontrolieru šamanis: Kā dabūt 16bitu mainīgo divos 8bitīgajos? Vēlams iekš avr gcc |
|
|
Comments: |
unsigned short s; .... unsigned char d1 = (s & 0xFF00) >> 8; unsigned char d2 = (s & 0x00FF);
uzmanīgi tikai, vai ir big endian vai little endian.
vari izskaidrot sintaksi? cik saprotu no mainīgā s ar pointeri & 0xFF00 izvelk vērtību? a ko >> 8 nozīmē? cato kautkādā strīmā?
a & b ir loģiskais un. piemēram: 10101010 & 11110000 = 10100000
savukārt a >> b ir a pārbīde par b bitiem (var pārbīdīt arī pretējā virzienā ar << ) piemēram 10011010 >> 2 = 00100110
2 domāts desmitnieku sistēmā, pārējie binārā, protams
nu lol. biju mēģinājis andot ar && tencinu par infō
kas tikai pierāda, ka termini nav mana stiprā puse: && - loģiskais un (būleana izteiksmēm) & - bitwise un (šitādām izteiksmēm)
varbūt tevi interesē arī: | - bitwise or ^ - bitwise xor
p.s. rtfm | |