Evo imam jedan zadatak na viseru, lepo objasnjen kod ali ne znam iz kog razloga zabo sam na ovom zadatku pa ako moze neko detaljnije da mi objasni. Mi smo vec presli ove zadatke ali ne znam iz kog razloga na zadacima ovog tipa "zabadam" pa ako neko moze da mi pojasni:
#include <stdio.h>
main ()
{
unsigned short x,n
printf("\nunesite jedan pozitivan ceo broj u heksadecimalnom obliku");
printf("\nopseg broja: do 0xffff");
scanf("%x, &x");
printf("\nUnesite redni broj bita koji se ispituje od 1 do 16");
scanf("%d, &n");
if(x & (1<<(n-1)))
printf("\n %d bit zadatog podatka ima vrednost 1",n);
else
printf("\n %d bit zadatog podatka ima vrednost 0",n);
x^=(1<<(n-1));
printf("\nVrednost %d bita zadatog podatka je nepromenjena",n);
printf("nova vrednost zadatog podatka je %#x\n\n",x);
}
Ako neko moze da mi pojasni, naravno znam sta je printf scanf.... koliko sam ja nesto shvatio ovde on ubacuje 1 na mesto bita koji se ispituje i radi logicko mnozenje (rezultat je 1 samo kada su obe vrednosti 1)... e sada ja ne kapiram malo ovaj kod, jel on ubacuje 1 na svaki bit posebno pa da bi presao na naredni,on onaj vec obrajdeni siftuje u levo ali opet ne shvatam.... znam da je ovo prosto ali ja nekako ovde zabadam, ne znam zasto. Da napomenem, znam sta rade operatori & i | (logicko mnozenje i sabiranje) ali ne kapiram na koji nacin ispituje bitove kod unetog heksadecimalnog koda i ne kapiram sta poslednja naredba sa x radi....
radio sam u asembleru pre godinu dana i mislim da bih tamo lakse ovo izveo nego ovde (sa 30x vise linija koda naravno :D ) :DDD