Hogyan vonok ki egy kissebb számbol egy nagyobbat bináris számrendszerben?
Mondjuk: 15-37?
Én ugy csinálltam, hogy átalakitottam mind2-t és hát elvégeztem a műveletet.
Eredményűl 101010-et kaptam.
0 − 0 = 0
0 − 1 = −1
1 − 0 = 1
1 − 1 = 0
Ugyanazt az eredményt kaptam csak negativ.
Azaz: -101010
negatív eredménynél nem érvényes
15-37= -22 "-10110"
Akkor most nem értem.
Az én esetembetn, hogyan működik a számolási folyamat?
1) simán, ahogy ki szoktál/szokás vonni, mûködik
2) az is jó algoritmus, ha a nagyobból vonod ki a kisebbet, majd negálod
Azért kaptál rossz eredményt, mert nem jól hajtottad végre az algoritmust, és nem azért, mert hibás. Ugyanúgy, ahogy decimális számrendszerben a végén bejön a mínuszjel, ugyanígy itt is oda kell raknod amikor arra kerül a sor.
De azzal én 101010-et kapot, de akkor ebben az esetben ha bejön a - jel, akkor pedig: -101010-et.
Levezetve:
A 15 binárisan: 1111
A 37 binárisan: 100101
A 100101 kettes komplemense (amikor megforditjuk a 0-át 1-re az 1-et pedig 0-ra, valami hozzáadunk 1-et) 011011!
Majd az igy kapott számot össze kell adni a kissebitendővel.
Azaz: 011011
+ 1111
Ami: 101010
Bocsi ha tévedek, de én ezt igy értelmezem.
Mint ahogy írták a nagyobból vonod a kisebbet és negálod.
A 15 binárisan: 1111
A 37 binárisan: 100101
100101
- 1111
--------
10110
--------
-10110
Világos.
Csak még annyi, hogy a negálás az nem egyenlő az invertálással?
Azaz én negálás alatt azt csináltam volna, hogy a kapott 10110 eredmény nulláit és egyeseit felcserélem: 01001.
De az irtak alapján téves az elképzelésem róla.
Add össze a számodat, meg a szerinted vett negáltját/inverzét, és nézd meg, hogy 0-át kapsz-e.
Fontos még, hogy a kettes komplemens-vétel NEM a sztenderd bináris számábrázolás mûvelete, hanem speciálisan a számítástechnikában használják és kezelik így a negatív számokat.
Talán próbáld újra kitûzni a kérdést "matematika" helyett "programozás" címkével, ha arra kell neked.
Az elõbbiben a -1 2-es számrendszerbeli alakja "-1", míg a gép n biten valahogy tök máshogy (talán 1111111?) tárolja.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!