Nejste přihlášen/a.

Přihlásit se do poradny

 

Co znamena tento kod v Cecku

Od: molouch odpovědí: 12 změna:

Dobry den,

mohl by mi prosim nekdo vysvetlit co znamena tato operace v jazyku C?

x = (1 << 7);

 

 

12 odpovědí na otázku
Řazeno dle hodnocení

 

 

luke237

0x
Jednicka posunuta o 7 bitu doleva. Vyjde tak cislo 128.
luke237
Wikipedie:
Operators in C and C++
luke237
Oprava odkazu: Operators in C and C++

 

dzordz*
01.02.13 07:50

0x

<< je left shift, první číslo se ve dvojkové soustavě posune o [druhé číslo] bitů doleva a zprava se doplní nulama.

0000 0001, výsledek 1000 0000

V podstatě taky vynásobení x2^7 (pokud se to tam vejde a nezačnou čísla zleva odpadávat). Více viz bitwise operátory.

 

molouch

A kdyby to bylo naopak:x = (1>> 7);
luke237
Je to trosku slozitejsi (Wikipedie).
Nejpravdepodobne se ti bude zleva nasouvat MSB, tedy v tomto pripade nula, takze vysledek po sedmi posunech bude nula.

 

molouch

A co tento kod?

x = ((0x7<<24)|(0x1<<16));

 

molouch

Kdyz to rozpytvam:x = ((0x7
hm*

Ty nuly jsem nepočítal, ale postup vypadá správně.

luke237
Taky se mi nechce ty nuly pocitat, takze si to prolitneme v hexa :
0x7<<24 = 0x7000
0x1<<16 = 0x0100
br>secteno, podtrzeno: 0x7100
luke237
Kdyz tech 0x7100 prevedu na binarni kod, tak je to :
0000 0111 - 0000 0001 - 0000 0000 - 0000 0000
Porovnanim s tim, co mas ty, tak vidim, ze ti tam ty nuly nejak nevychazeji.
luke237
Sakra, ted jsem si vsiml, ze ten prevod do hexa mam spatne. Mam tam jen ty dolni pulky bajtu .
0x7 <<24 = 0x07 00 00 00
0x1 <<16 = 0x01 00 00 = 0x00 01 00 00
celkem: 0x07 01 00 00
Ted prevod do BIN uz pak mam dobre.
Jeste jednou se omlouvam.

 

 


 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.

Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.

Copyright © 2004-2025 Poradna Poradte.cz. Všechna práva vyhrazena. Prohlášení o ochraně osobních údajů. | [tmavý motiv]