|
Sva početnička pitanja Sva početnička pitanja bi trebala da se postavljaju u ovom forumu, a ako se pretvori u kvalitetnu diskusiju interesantnu svima - prebacićemo je u odgovarajući forum. Molimo "znalce" da ne omalovažavaju početnike, ako žele da pomognu svi ćemo biti zahvalni, ako ne žele, neka preskoče ovaj forum. |
![]() |
|
Alati teme | Način prikaza |
|
![]() |
#1 |
emperor Selassie
Grand Master
|
![]() Dakle, ako sam lepo shvatio, da bi dobio recimo masku 000110100 treba da odradim:
~(~(~(~0 << 2) << 1) << 1) << 2) ...znači imali bismo: 000000000000 početna vrednost 111111111111 ~ izvršeno nad prethodnom maskom 111111111100 << 2 izvršeno nad prethodnom maskom 000000000011 ~ izvršeno nad prethodnom maskom 000000000110 << 1 izvršeno nad prethodnom maskom 111111111001 ~ izvršeno nad prethodnom maskom 111111110010 << 1 izvršeno nad prethodnom maskom 000000001101 ~ izvršeno nad prethodnom maskom 000000110100 << 2 izvršeno nad prethodnom maskom Tako? ![]() |
![]() |
![]() |
![]() |
#2 |
emperor Selassie
Grand Master
|
![]() Hah, jeste!
![]() Evo šta sam uradio "na papiru" (na kompu uz windowsov calculator) 000000001000 = 8 000000110100 = maska 000000111100 = 60 (posle XORovanja) A moj program: Kôd:
#include <stdio.h> main() { int x, y; /* x je ulaz, y izlaz */ int maska; while (1) { printf("Unesite ceo broj (0 za izlaz): "); scanf("%d", &x); if (x<=0) { break; } maska = ~(~(~(~0 << 2) << 1) << 1) << 2; y = x ^ maska; printf("Rezultat: %d\n", y); } } ![]() Hvala svima! |
![]() |
![]() |
![]() |
#3 |
хардвераш
Qualified
Datum učlanjenja: 04.01.2007
Lokacija: Маунтин Вју, САД
Poruke: 117
Hvala: 4
25 "Hvala" u 10 poruka
![]() |
![]()
__________________
Рад је створио човека. Рад ће га и уништити. |
![]() |
![]() |
![]() |
|
|
![]() |
||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Bitwise operacije + Osnovne strukture podataka | MrSteel | Flash | 5 | 12. 05. 2007. 20:24 |