mam problem z zadaniem:
Pobierz z klawiatury dwie liczby całkowite dodatnie X i Y (short).
• Dokonaj następujących operacji bitowych: ◦ and(X, Y)
◦ or(X, Y)
◦ xor(X, Y)
◦ not(X)
◦ not(Y)
◦ nand(X,Y)
◦ nor(X,Y)
◦ xnor(X,Y)
◦ Przesunięcie bitowe w lewo o 4 zmiennej X ◦ Przesunięcie bitowe w prawo o 3 zmiennej Y
• Wydrukuj wyniki na ekranie w postaci liczb dziesiętnych (wraz z opisem jaka liczba jest wynikiem jakiej operacji).
• Wydrukuj także wyniki na ekranie w postaci liczb binarnych (wraz
z opisem jaka liczba jest wynikiem jakiej operacji). (wykorzystaj funkcję wbudowaną do konwersji liczb na tekst, zawierającej opcję zapisu
w różnym systemie liczbowym).
mój kod:
#include <stdio.h>
int main()
{
short a,b;
printf("podaj 2 liczby calkowite dodatnie:\n");
scanf("%hu %hu", &a, &b);
printf("operacja and(X,Y): %d\n", a&b);
printf("operacja or(X,Y): %d\n", a|b);
printf("operacja xor(X,Y): %d\n", a^b);
printf("operacja not(X): %d\n", (~a));
printf("operacja not(Y): %d\n", ~b);
printf("operacja nand(X,Y): %d\n", ~(a&b));
printf("operacja nor(X,Y): %d\n", ~(a|b));
printf("operacja xnot(X,Y): %d\n", ~(a^b));
printf("Przesunięcie bitowe w lewo o 4 zmiennej X: %d\n", (a<<4));
printf("Przesunięcie bitowe w prawo o 3 zmiennej Y: %d\n", (b>>3));
return 0;
}
mam 2 pytania:
- przy podaniu liczb np. 3 i 4 mam taka odpowiedz:
operacja and(X,Y): 0
operacja or(X,Y): 7
operacja xor(X,Y): 7
operacja not(X): -4
operacja not(Y): -5
operacja nand(X,Y): -1
operacja nor(X,Y): -8
operacja xnot(X,Y): -8
Przesunięcie bitowe w lewo o 4 zmiennej X: 48
Przesunięcie bitowe w prawo o 3 zmiennej Y: 0
czy te liczby ujemne są poprawne?
- zupełnie nie wiem co zrobić z tym drugim poleceniem, nie mam pojęcia o jaka funkcje wbudowana do konwersji chodzi. Jaka to funkcja lub gdzie znajdę informacje na jej temat?