Forum Gry Hobby Sprzęt Rozmawiamy Archiwum Regulamin

Forum: Dodawanie w zapisie znak moduł

09.11.2012 09:23
Rezort
1
Rezort
161
Naznaczony

Dodawanie w zapisie znak moduł

Czy ktoś mi może wytłumaczyć na czym to polega ? Próbuję się skapnąć, ale nic nie wychodzi. np.
+13: 0,1101 -13: 1,1101
-7: 1,00111 +7 : 0,0111

09.11.2012 10:43
Kazuya_3
2
odpowiedz
Kazuya_3
153
Legend

Ech, mam to samo - zwykły binarny jest prościutki przy wszystkich działaniach, ale znak-moduł, uzupełnienia do dwójki itd. nie czaje kompletnie ;O Może jakbym na wykład poszedł...

09.11.2012 10:47
3
odpowiedz
112
3 grosze

To chyba żart, ale gdyby jednak nie ...

znak moduł to po chłopsku:

część liczby opisuje znak - ta część to pierwszy
(najstarszy, najbardziej znaczący, pierwszy z lewej, MSB ...)

część liczby opisuje moduł (czyli to, co w szkole nazywają "wartością bezwzględną"

+13: 0,1101
w tym przypadku znak + = 0
moduł 1101=13=8+4+0+1

-13: 1,1101
znak - = 1
moduł 1101=13=8+4+0+1

-7: 1,00111
znak -=1
moduł 00111=7=0+0+4+2+1

+7 : 0,0111
znak +=0
moduł 0111=7=0+4+2+1

chyba sie nie pomyliłem - piszę na kolanie ...

09.11.2012 10:50
Kazuya_3
4
odpowiedz
Kazuya_3
153
Legend

^^Tak? A dodawanie/odejmowanie liczb o różnych znakach gdzie za przeproszeniem z dupy znak zmienia się jak mu się podoba... (chyba, że jesteś to w stanie prosto wytłumaczyć, nie tak jak koleś, który uważa, że szystko to powinniśmy już znać i zapieprza z materiałem...)

09.11.2012 10:51
5
odpowiedz
Tuminure
105
Senator

@up
Nie pomyliłeś się - autorowi tematu chodzi jednak o dodawanie tych liczb. Sam zastanawiałem się nad odpisaniem ale w internecie jest całkiem sporo na ten temat. Jeżeli nie chce mu się poszukać w googlach, to mi tym bardziej nie chce się mu tłumaczyć.

09.11.2012 10:53
Rezort
6
odpowiedz
Rezort
161
Naznaczony

Szukałem w googlach, tylko nie umiem tego pojąć, myślałem nad wytłumaczeniem jakimś na chopski rozum :P

09.11.2012 11:01
7
odpowiedz
112
3 grosze

Ludzie dzielą się tylko na 10 rodzajów - tych, którym chce się sięgnąć do książki na temat systemu dwójkowego i tych którym nie chce się sięgnąć do książki na temat systemu dwójkowego - przykro mi - na forum to się tego nie nuczysz ... ale gdyby jednak - na codzień posługujesz się systemem znak-moduł - tylko w systemie dziesiątkowym.

weźmy liczbę dwadzieścia trzy

zapisujesz ją jako 23 (bo każdy wie, że to plus 23 i + nikt nie pisze)
+ znak, 23 moduł

minus dwadzieścia trzy
-23 (- znak, 23 moduł)

jeśli potrafisz policzyć np. +23+(-13) to potrafisz dodawać liczby znak-moduł w systemie dziesiątkowym,
w dwójkowym jest tak samo ale 1+1=0 i jeden "w pamięci") a nie 2
(odpowiedniki w systemie dziesiątkowym to to np. 5+5=0 i "jeden w pamięci"
6+4=0 i "jeden w pamięci" ...)

09.11.2012 11:09
Rezort
8
odpowiedz
Rezort
161
Naznaczony

A skąd się bierze te 1,0 przy 7 jak 7 to 0111 i tak samo w 13, 13- 1101 a tam jest 0,1101
Nie wiem jestem z tego ciemny, chodziłem do technikum chemicznego, jestem na studiach na transporcie i koleś uważa, że to wszystko mieliśmy i na pewno znamy. To nie jest mój jedyny problem bo po raz pierwszy na oczy widze jakieś przerzutniki, multipleksery itd. na wykładzie koleś pieprzy o procesorach które produkowali 20 lat temu i jak się na czata wchodzi więc...

09.11.2012 11:13
9
odpowiedz
zanonimizowany861943
46
Generał

A system znak-moduł to dopiero prościutki początek zabawy :) Przy działaniach na liczbach zmiennoprzecinkowych - to jest dopiero fajne!

A skąd się bierze te 1,0 przy 7 jak 7 to 0111 i tak samo w 13, 13- 1101 a tam jest 0,1101

Pierwszy bit to kod znaku - 1 oznacza minus, 0 oznacza plus. I tyle.

09.11.2012 11:19
Rezort
10
odpowiedz
Rezort
161
Naznaczony

Czyli -13 to bedzie 1,01101 czy 1,1101 bo w prezentacji co nam koleś dał są 2 wersje

09.11.2012 11:22
11
odpowiedz
zanonimizowany861943
46
Generał

Oba są równe -13 tylko z tą różnicą, że pierwszy zapis wykorzystuje łącznie 6 bitów a drugi 5.

09.11.2012 15:22
12
odpowiedz
112
3 grosze

Czyli -13 to bedzie 1,01101 czy 1,1101 bo w prezentacji co nam koleś dał są 2 wersje

W tym zapisie jeśli MSB (pierwszy z lewej bit) jest równy 1 to liczba jest ujemna, 1 oznacza "-", jeśli pierwszy bit jest 0 to 0 oznacza "+", tan najstarszy bit nazywany jest bitem znaku, bo służy do tego na co wskazuje nazwa - do wskazania czy liczba jest dodatnia, czy ujemna.

1,01101 ...1,1101 - nie spotkałem się z takim zapisem, ale zgaduję, że przecinek oznacza oddzielenie bitu znaku (czyli to co po lewej stronie przecinka określa +(0) lub -(1))

W rzeczywistości gdy przejdziemy od matematyki/informatyki do konkretnego układu/informatyki stosowanej MUSIMY uwzględnić długość słowa.

Przykład dla liczby +13 i -13:
dla układu ośmiobitowego zapis binarny w ZM (znak-moduł)
+13 powinien być 00001101
a dla
-13 powinien być 10001101

dła układu 16-bitowego ZM
+13 .. 0000000000001101
a dla
-13 .. 1000000000001101

przecinek służy do tego aby nie dostać oczopląsu i móc pominąć zera wiodące (czyli te między bitem znaku i pierwszą jedynką w module) tzn, że jeśli dobrze odgadłem po co jest przecinek, to oba zapisay sa poprawne, choć TROCHĘ niekonsekwentne (zwykle albo pomijamy zera wiodące, albo nie) - ale błędem toto nie jest - najwyżej trochę mylące.

To można sobie wyobrazić też na (głupawym) przykładzie licznika kilometrów w samochodzie (takim starego typu z bębnami z cyferkami) załóżmy, że pytasz kolegi ile samochód przejechał ,, odp. 13, co widzisz na liczniku 0013 (bo są 4 bębenki) prawda, ale nikt chyba nie odpowie "zerozerotrzynaście" - w rzeczywistym układzie rejestry/komórki mają też określoną szerokosć (8bitów/16bitów itd) więc komputer musi pamiętać wszystkie zera - te pomijane zwyczajowo przez człowieka też.

Podsumowując skrótem myślowym - jeśli jest ten przecinek i pełni rolę, którą założyłem - można ale nie trzeba pomijać zer między bitem znaku i pierwszą jedynką. Jeśli w zapisie nie ma przecinka i mówimy o konkretnej liczbie bitów, to pierwszy bit jest bitem znaku, nie wolno pominąć żadnego bitu choćby trzeba było wypisywać 62 zera.

Na koniec - Twój wykładowca/nauczyciel ma zawsze rację i jeśłi mówi inaczej niż ja - słuchaj jego.

Forum: Dodawanie w zapisie znak moduł