Zacznijmy od zadania 3:
Pierwsze co należy zrobić to zamienić liczbę 53 na postać binarną. Liczba ta w zapisie binarnym to 110101. Jednak w zadaniu jest powiedziane że liczba ma mieć długość 1 bajta czyli 8 bitów. Tak więc 53 w systemie dziesiętnym to: 00110101 w systemie binarnym. Jest to liczba dodatnia więc nic nie trzeba robić żadnych dodatkowych konwersji. Sprawa troszkę inaczej się ma dla liczby -25. Zacznijmy od zamiany liczby nie -25 a 25 na system binarny. Ta liczba w systemie binarnym ma postać: 11001. Zgodnie z tym co pisałem wcześniej należy liczbę wyrównać do 8 bitów. Po wyrównaniu liczba 00011001 w systemie binarnym to liczba 25. Jednak my chcemy mieć liczbę -25 kodowaną jako U2. Procedura konwersji jest następująca. Zamieniamy każdy z bitów na przeciwny a następnie dodajemy liczbę 1. Tak więc po negacji bitów mamy postać: 11100110, następnie dodajemy 1 i finalnie mamy 11100111.
Teraz nie pozostaje nam nic innego jak przeprowadzić operacje dodawania pisemnego. -25 53
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
Wynik tej operacji to liczba 28 czyli 00011100 w zapisie binarnym.
Zadanie 4
Rozumiem że chodzi o liczbę 8BA w zapisie hex czyli szesnastkowym. Skoro jest to system szesnastkowy czyli podstawą tego systemu są potęgi liczby 16. Tak więc najlepiej sobie to rozpisać w tabeli:
8 |
B |
A |
16^2 |
16^1 |
16^0 |
256 |
16 |
1 |
System szesnastkowy składa się z 16 cyfr, standardowo jak w dziesiętnym mamy liczby od 0 do 9 i dodatkowo mamy literki, A=10, B=11, C=12, D=13, E=14, F=15.
Zamiana na dziesiętny wygląda następująco:
8 * 16^2 + B * 16^1 + A * 16^0 = 8 *256 + B * 16 + A * 1 = 8 *256 + 11 * 16 + 10 *1 = 2048 + 176 + 10 = 2234.
Jeśli mamy liczbę dziesiętną to bardzo łatwo można dokonać zamiany na system binarny.
Dokonuje konwersji według sposobu z tej strony:
http://www.algorytm.edu.pl/funkcje/69-zamiana-liczby-dziesietnej-na-binarna.html
Wynikiem zamiany jest liczba: 100010111010.
Zadanie 5
Mamy tutaj do czynienia z zapisem liczby według standardu IEE 754. Sposób ten jest wykorzystywany między innymi w C++ do kodowania liczb przechowywanych w zmiennych typu float. Liczba taka składa się z 32 bitów. Pierwszy od lewej to bit znaku, następnie mamy 8 bitów które kodują wykładnik (część całkowita ), po nich mamy 25 bitów do kodowania częśći ułamkowej.
Zachęcam cię do odwiedzenia tej strony, na niej znajdziesz świetny kalkulator online z wizualizacją.
https://www.h-schmidt.net/FloatConverter/IEEE754.html
Co do przeliczania to polecma tą stronę:
https://eduinf.waw.pl/inf/alg/006_bin/0022.php
Przedstawiona w zadaniu liczba : 1011111111100000000000000000000 to w zapisie dziesiętnym: 3.4587645E19