Kezdőoldal » Tudományok » Egyéb kérdések » Tekinthetjük a negatív számoka...

Tekinthetjük a negatív számokat másnak a negált számoktól?

Figyelt kérdés
Attól, hogy az informatikában izomorfak, lehet valahol szerencsésebb lenne megkülönböztetni.

2019. júl. 11. 23:05
1 2 3
 1/23 anonymousreview60 ***** válasza:
51%
Mi a negált szám? Nem találom.
2019. júl. 12. 08:09
Hasznos számodra ez a válasz?
 2/23 anonim ***** válasza:
Ha valaki akarja, tekintheti a negatív számokat "alap"-nak -- és akkor azok negálásával kapja a pozitív számokat.
2019. júl. 12. 08:36
Hasznos számodra ez a válasz?
 3/23 anonymousreview60 ***** válasza:
0%

Más választásunk nincs is, mivel tetszőleges nemnegatív szám bitenkénti negáltja nem azonos az ellenkező előjelű számmal:

pl.

+8 = 0b00001000

-8 = 0b11111000

~8 = 0b11110111

+137 = 0b10001001

-137 = 0b01110111

~137 = 0b01110110

2019. júl. 12. 09:20
Hasznos számodra ez a válasz?
 4/23 anonymousreview60 ***** válasza:
51%
#4 az eredeti kérdésre vonatkozik.
2019. júl. 12. 09:21
Hasznos számodra ez a válasz?
 5/23 2*Sü ***** válasza:
68%

Nekünk van egy fix mennyiségű bitünk. Azt meg lehet feleltetni egy számnak, ha a biteket, mint számjegyeteket egy kettes számrendszerbeli számnak tekintjük.

01101001₂ = 105₁₀

Nyilván ez egy magától adódó megfeleltetés a bitsorozat és természetes számok között.


Hogy aztán a bitsorozatnak, illetve az annak megfeleltetett természetes számoknak a továbbiakban mit feleltetsz meg, az a te döntésed. Pl. lehet ez egy hibakód is:

1 → fájl nem található

2 → nincs jogosultság a fájl olvasására

3 → nincs jogosultság a fájl írására

stb…


Az ASCII tábla karaktereket feleltet meg a bitsorozatnak/természetes számnak:

32 → szóköz

32 → felkiáltójel (!)

33 → kettős idézőjel (")

stb…


~ ~ ~


Nyilván lehet olyan megfeleltetést is csinálni, aminél ezen bitsorozatoknak/természetes számoknak az egész számok egy olyan intervallumát felelteted meg, ami tartalmaz pozitív és negatív egészeket is. Ez ezerféleképpen meg lehet tenni, pl. egy intuitív módon kézenfekvő megoldás, hogy az első bit – a természetes szám kettes számrendszerbeli alakjának legmagasabb helyiértéke – jelezze az előjelet:

0 000 0000₂ → 0

0 000 0001₂ → 1

0 000 0010₂ → 2

0 011 0010₂ → 50

1 000 0000₂ → -0

1 000 0001₂ → -1

1 000 0010₂ → -2

1 011 0010₂ → -50

1 111 1111₂ → -127


Így -127 és 127 közötti intervallumba tartozó egész számokat tudsz megfeleltetni bitsorozatoknak, ha 8 bitről van szó. Az probléma – vagy nem az, nézőpont kérdése –, hogy a nullának két bitsorozat is meg van feleltetve, tehát ez nem egy bijektív leképezés, pl. egy 0 és egy -0 összehasonlítását ha bitenkénti összehasonlítással végzed el, azt fogod kapni, hogy a kettő nem egyenlő. A műveletvégzés is macerásabb.


~ ~ ~


Az is megoldás persze, amire utaltál, hogy ugyanúgy az első bit adja az előjelet, csak éppen a további 7 bitnél a szám negált vesszük:

0 000 0000₂ → 0

0 000 0001₂ → 1

0 000 0010₂ → 2

0 011 0010₂ → 50

1 000 0000₂ → -0 111 1111₂ → -127

1 000 0001₂ → -0 111 1110₂ → -126

1 000 0010₂ → -0 111 1101₂ → -125

1 011 0010₂ → -0 011 0010₂ → -77

1 111 1111₂ → -0 000 0000₂ → -0


Csak így megmaradt ugyanaz a probléma, a nullának két bitsorozat is meg lett feleltetve, a 0 000 0000 és az 1 111 1111 is.


~ ~ ~


Az informatikában a kettes komplemenst használják, a negatív szám a szám abszolút értékének kettes komplemense, amit úgy kapunk, hogy negáljuk a biteket, majd az egészhez hozzáadunk egyet. Így 8 biten -128 és 127 között tudunk számokat ábrázolni, ráadásul a műveletvégzés pontosan úgy történik, mint nemnegatív számok esetén.


~ ~ ~


Szintén adódik még egy megoldás, amit feszített előjeles ábrázolásnak hívnak. Kvázi olyan, mintha a számhoz hozzáadnánk egy konstanst, és az így kapott számnak feleltetnék meg az eredeti számot. Pl. 8 bit esetén adjunk hozzá 128 -at minden ábrázolni kívánt számhoz.

0 000 0000₂ → 0-128 = -128

0 000 0001₂ → 1-128 = -127

0 000 0010₂ → 2-128 = -126

(Értsd: a -126-hoz hozzáadunk 128-at, így 2-t kapunk, és ennek a 2-nek a kettes számrendszerbeli alakját feleltetjük meg a -126-nak.)

0 011 0010₂ → 50-128 = -78

1 000 0000₂ → 128-128 = 0

1 000 0001₂ → 129-128 = 1

1 000 0010₂ → 130-128 → 2

1 011 0010₂ → 178-128 = 50

1 111 1111₂ → 255-128 → 127


~ ~ ~


De úgy feleltetsz meg bitsorozatoknak számokat – vagy más halmazt –, ahogy neked tetszik, és tekinthetsz ebben a megfeleltetésben bármilyen részhalmazt bármilyen megfeleltetési módszernek.

2019. júl. 12. 10:07
Hasznos számodra ez a válasz?
 6/23 anonymousreview60 ***** válasza:
47%
Kérdező: Mitől izomorfak a negatív számok a [bitenkénti? (ezt nem írtad)] negáltakhoz képest?
2019. júl. 12. 10:33
Hasznos számodra ez a válasz?
 7/23 anonim ***** válasza:
52%

Szerintem nem teljesen érted a negatív számokat meg a "negálást". A két művelet csak nagyon messziről hasonló. De jobban megnézve nem teljesen azonosak. Ha megnézzük, hogy a "negálás" művelet miből ered akkor egyből látszik a különbség. Mindkét fogalom halmazelméletből vezethető le. Először nézzük a "negálást". A negálás az "ellentett képzés", ez gyakorlatilag egy komplementer halmaz előállítása. Azaz van egy "M" halmazunk ami a "mindent" jelent, és ezen belül van egy "A" halmazunk. Ha ezt megnézzük akkor az A komplementer halmaza lesz "gyakorlatilag" A negáltja. (Ugyanígy a két halmaz metszete lesz az "A és B" illetve a két halmaz uniója lesz "A vagy B" és így tovább ez szépen levezethető, hogy a kettő gyakorlatilag ugyanaz). Gyakorlatilag a negálás egy komplementer képzés ami azt jelenti, hogy ha A+/A=M (/A-val jelölöm A negaltat), itt A+/A=1 "értelemben" (pontos részletes levezetést itt most kihagynám). De halmazelméleti megfontolások alapján (pl. a halmazok elem számait tekintve mindkettő "pozítiv" ezt most kicsit elnagyoltam, előre is köszi a lepontozást...).


A negatív szám egészen másképpen jön létre. A negatív számok úgy "jönnek létre", hogy elindulunk a természetes számokon (vissza kanyarodva természetes számok egy halmaz elemeinek számosságának leírására megfelelőek). Majd definiáltuk az összeadás műveletet (itt még megvan a pontos halmazelméleti megfeleltetés, hiszen két természetes szám összege két adott elemszámú halmaz úniójának elemszáma). Defináljuk a kivonás műveletet (itt még egy ideig tudunk operálni a halmazokkal és komplementer halmazokkal), de egy idő után az általánosításnál eljutunk oda, hogy ha X-Y írunk és Y>X akkor kapunk egy nem természetes számot (és nem tudunk ilyen halmazt létrehozni, mert nincs negatív elemszámú halmazunk). Ahhoz, hogy ez a művelet korlátozás nélkül elvégezhető legyen be kell vezessük a negatív számokat. És ezen a ponton már el kell szakadni az eredeti halmazelméleti modelltől, mert negatív elamszámú halmazt nem tudunk létrehozni. Ebből már látszik, hogy a negatív számok nem egy komplementer halmaz elemszámát adják meg mint a negálás műveletnél.


Az, hogy ma "kényelmi" okok miatt a negatív számokat kettes komplemens formában tároljuk és "látszólag" bitenkénti negálással állítjuk elő (bitenki negálás + 1) az egy ábrázolási kényelem. Sokan sajnos pont itt tévednek el amikor elkezdik tanulni az informatikát és elkezdik összekeverni a fogalmakat. Az, hogy a számokat hogyan ábrázoljuk a számítógépen teljesen rajtunk múlik. Nem véletlenül van kb. 1,5 tucat elterjedten használt kódolási rendszer. Ebből kettőt szinte mindenki ismer az egyik az 1-2-4-8 súlyozású bináris kód, a másik a BCD kód. De még mindig használjuk az ún. Grey kódot (ha másthol nem a Karnough táblánál találkozik vele az ember). De pl. a régi telefonközpontok esetén gyakori volt 1-2-4-6 vagy az 1-2-4-5 kód használata is (itt is mint a BCD-ben vannak tiltott kombinációk), mindkét kód esetén a >5 és a >6 egyszerűen meghatározható volt (és ez iránykiválasztásnál egyszerűsített). De számtalan egyéb kódrendszer is létezik és létezett (pl. ma is sokszor használunk főleg beágyazott rendszereknél olyat, hogy egy számot úgy kódolunk, hogy hány darab 1-es értékű bit van egymás után pl. 0000=0 1000=1 1100=2 1110=3 1111=4). Más kérdés, hogy ezekkel hogyan tudunk jól számolni, vagy kevésbé jól. De egy csomó helyen megvan ezeknek is a létjogosultsága. Ezért kell nagyon határozottan elkülőníteni a "szám" "érték" "számrendszer" és "számábrázolás" fogalmakat.

2019. júl. 12. 10:35
Hasznos számodra ez a válasz?
 8/23 anonim ***** válasza:
0%

[link]


Egy pozitív szám kockás papíron pl 3 rublikába fér el, a negatívhoz már 4 rublika kell.


Programozásban is előre meg kell határozni mit értünk egy bineáris változón: pl

0-255 vagy -127...+127 stb


Van egyfajta eltérés a 'matematikusi' és az 'informatikusi' szám értelmezés közt is. Ez utóbbi a leírt szám belső tulajdonságának értelmezi azt hogy a szám negatív, a matematikus pedig nem.Emiatt borul a műveleti sorrend és sok PC-s számológép hibásan számol:

[link]

2019. júl. 12. 10:58
Hasznos számodra ez a válasz?
 9/23 anonymousreview60 ***** válasza:
"Van egyfajta eltérés a 'matematikusi' és az 'informatikusi' szám értelmezés közt is. Ez utóbbi a leírt szám belső tulajdonságának értelmezi azt hogy a szám negatív, a matematikus pedig nem.Emiatt borul a műveleti sorrend és sok PC-s számológép hibásan számol:" A felhozott példa nem jó szerintem, ott csak egyszerűen rosszul programozták be az operátorok precedenciáját.
2019. júl. 12. 11:25
Hasznos számodra ez a válasz?
 10/23 anonim ***** válasza:
0%

#10: "ott csak egyszerűen rosszul programozták be az operátorok precedenciáját"


Na jó de win95 óta MINDEN windownál..?


De próbáld megkérdezni az embereket ahol sok informatikus gyűlik össze (pl HUP-on). A kérdést se fogják megérteni. A sor elejére írt -5^2 re azt fogják hinni hogy 25 hiszen minusszor minusz az plusz, közben vajójában ezt kéne érteniük alatta matematikusi szemlélettel: 0-5^32=-25

2019. júl. 12. 11:50
Hasznos számodra ez a válasz?
1 2 3

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!