int main() { printBin('A'); system("pause"); return 0; }
Meningen er så at programmet skal udskrive det givne tegn binært. Det virker også ganske fint A=65=01000001
Mit problem ligger i at jeg ikke forstår if(val & (1 << i)). Jeg ved at & retunerer 1 hvis der står 1 på begge sider af den. Men så er jeg også stået af.
Havde ikke lige læst artiklen, den hjalp på hvad << gør men har lige en sidste ting. (1 << i) vil så producere: 00000001 00000010 00000100 etc. Det vil så blive "sammenlignet" med val som er 01000001 ved 01000001 & 00000001 står der 1 på begge sider altså retunerer den 1 ved 01000001 & 00000010 står der 0 og 1 altså retunerer den 0
Vil det så sige at & retunerer 1 bare det med 1'tallerne passe et sted i byten?
Kom til at glemme at i tæller nedad. Mente 10000000 01000000 00100000 etc. Det vil så blive "sammenlignet" med val som er 01000001 ved 01000001 & 01000000 står der 1 på begge sider altså retunerer den 1 ved 01000001 & 00100000 står der 0 og 1 altså retunerer den 0
Skal lige være 100% sikker på at jeg forstår det. 010000000 er 1 byte. Hvert tal i den byte er en bit.
00100000 & 00101111 Giver true fordi at der på plads nr. 3 fra venstre står 1 i begge bytes. Forstår jeg det rigtigt? (hvis ja gider du så ikke svare?)
ok, mente også at der var 8 bit i en byte men kan se jeg ramte 0 lige lovlig mange gange. Men nu forstår jeg det endelig, mange tak for hjælpen
Synes godt om
Ny brugerNybegynder
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.