Liczba binarna ze znakiem

Witam mam problem ze zrozumieniem liczb binarnych ze znakiem + i -.

W necie znalazłem troche info jednak nigdzie nie mogę trafić na sposób sprawdzenia tego czego potrzebuję.

Na wikipedi jest:

Sposób 1:

0 101 to 5

1 101 to –5

Gdzie 0 oznaczna liczbę dodatnią a 1 liczbe ujemną tak więc zamieniamy tylko najstarszy bit.

Czy mógłby ktoś to rozpisać? Za diabła nie wychodzi mi:

0 101 = 1*2(0) + 0*2(1) + 1*2(2) + 0*2(3) = 1 + 0 + 4 + 0 = 5 Wszystko pasuje jednak na ujemnej już nie:

1 101 = 1*2(0) + 0 *2(1) + 1*2(2) + 1*2(3) = 1 + 0 + 4 + 8 = 13

Jest też sposób ze zmianą bitów 0 na 1 a 1 na 0:

5 = 0101

-5 = 1010 – Tutaj mi wychodzi 10 a gdy najstarszy bit odejme czyli -8 to dostaje wynik -6

Może ktoś mi pomóc?

Sposób 1: najstarszego bitu nie bierzesz po uwagę, on tylko tylko określa, czy liczba jest dodatnia czy ujemna.

No ja rozumiem ale jak to przeliczyć na system 10?

Typek od tego na lekcjach się ■■■ gdzie ten BIT ujemy się podział. Gościu jest tak powalony nic nie uczy a wymaga. Za rok zmieniam szkołe lecz do tego czasu muszę to zaliczyć .

Tak więc prosze powiedz jak tą ujemną przeliczyć na system 10?

Liczby binarne można zapisywać w różnych systemach

W systemie Znak-Moduł najstarszy bit (z) koduje znak, a pozostałe (m)… no cóż - moduł :slight_smile:

Całą liczbę odczytuje się jako (-1)^z * m.

(-1)^1 = -1

(-1)^0 = 1

Stąd dla z=1 liczba jest ujemna, a dla z=0 dodatnia.

1101 = (-1)^1 + 1*2^2 + 0*2^1 + 1*2^2 = -1*(4 + 1) = -5

To masz tak jakby:

0 * 101 -> 1 * 5 = 5

1 * 101 -> -1 * 5 = -5

Jeżeli chodziło Ci o zapis U2, to po zmianie bitów musisz do liczby dodać jeszcze 1. Wtedy wyjdzie dobrze.

-5 = 1010 + 0001 = 1011 = -8 + 0 + 2 + 1 = -5

Chodzi mi doładnie o coś takiego:

liczba 10:

13 na 5 bitach rozkłdam na bin

13 /2 r1

6 /2 r0

3 / 2 r1

1/2 r 1

[0]1101 = 13

Mam z tego zrobić -13 na 5 bitach

[1]1101 = -13 ? Mam to sprawdzic więc:

od prawej - 1*2^0 + 0*2^1 + 1*2^2 + 1*2^3 = 1 + 0 + 4 + 8 = 13 Ale co robie z tym [1]? by było to na -13?

Czy licze od prawej:

-1^1 + 1*2^3 … 1*2^0 = -13?

Tego najstarszego bitu [1] [0] oznaczajacego znak liczby nie INDEKSUJE?

Typek jakoś tłumaczy że się ten bit też indeksuje ale potem to miesza i nikt nic nie wie …

Zapewniam Cię, że w internecie jest mnóstwo miejsc, gdzie można znaleźć informacje na temat zapisu liczb binarnych ze znakiem. Drugi link, jaki zwraca Google: Liczby binarne ze znakiem. Wystarczy tylko poświęcić trochę czasu i przeczytać. Nie sądzę, aby ktoś tutaj na forum podał Ci tyle informacji ile jest zawarte na tej stronie.

Pierwszy bit (bit znaku) określa czy jest to liczba ujemna czy dodatnia. Oprócz tego masz też kodowanie Up i U(p-1) czyli dla dwójkowego U1 i U2.