Hogy működik a bitenkénti osztás?
"lennie kell bitenkénti szorzásnak-osztásnak is"
Miért kellene lennie? Az osztás vissza van vezetve összeadásra és kivonásra. Tessék:
A szorzás táblázata talán ismerős lesz, azonos az ÉS művelettel.
0*0=0, 0/0=nan
0*1=0, 0/1=0
1*0=0, 1/0=nan
1*1=1, 1/1=1
#4-es:
> Gyakorlatilag "helyiérték mentes"
Gondolom ezalatt átvitelmentest értesz. A "bitenkénti" szorzás/osztás nem biztos, hogy átvitelmentes lesz, de a következőnek biztosan teljesülnie kell:
a (×) (b+1) = a xor (a (×) b)
és
a (×) (x (÷) a + 1) = a xor x
ahol (×) a bitenkénti szorzás, és (÷) a bitenkénti osztás, az előző inverze.
Nem igazán értem a fogalmakat.
A komplementerképzést értem. Az bitenkénti negáció. Az ÉS és a VAGY műveleteknek is van bitenkénti változata, ahol bitről bitre végezzük el a műveletet, meg van egy nem bitenkénti változata (ha valami nem nulla, akkor igaz).
A bitenkénti szorzás az egy az egyben az ÉS művelete:
0 * 0 = 0 ∧ 0 = 0
0 * 1 = 0 ∧ 1 = 0
1 * 0 = 1 ∧ 0 = 0
1 * 1 = 1 ∧ 1 = 1
A bitenkénti összeadás azért nem értelmezhető számomra, mert a bitenkénti műveletnél az operandusok és az eredmény is bit kell, hogy legyen. De mennyi 1+1, ha az eredmények a {0, 1} halmaz elemének kell lennie? Ha 1-nek definiáljuk, akkor az a VAGY művelet. Ha 0-nak definiáljuk, akkor meg a XOR művelet. De egyik sem igazán összeadás.
Ha van átvitel, akkor az meg már nem bitenkénti művelet.
A bitenkénti osztás hogy néz ki?
0 / 0 = ???
0 / 1 = 0 (ez oké)
1 / 0 = ???
1 / 1 = 1 (ez is oké)
Értelmezhetetlen bitekre az osztás művelete.
De fordítsuk meg, és induljunk ki abból, hogy az osztás a szorzás ellentétes művelete:
0 / 0 = az a szám, amivel 0-át megszorozva 0-át kapunk. Csakhogy a 0 és az 1 is ilyen.
0 / 1 = az a szám, amivel 1-et megszorozva 0-át kapunk. Oké, ez a 0.
1 / 0 = az a szám, amivel 0-át megszorozva 1-et kapunk. Ilyen szám nincs.
1 / 1 = az a szám, amivel 1-et megszorozva 1-et kapunk. Oké, ez az 1.
Hát így sem kaptunk egy egzakt műveletet.
Itt a bitenkénti művelet megvezető lehet, mert jó eséllyel nem a 16 bitművelet egyikéből választunk műveletet, de ha még mixelnénk is őket - így continuum sok műveletet létrehívva -, akkor sem biztos, hogy köztük ott lesz, amit én akarok.
Nevezzük a xorzsást bitenkénti összeadásnak - elvégre összeadjuk a biteket, csak utána modozzuk 2-vel vagy amennyi a radix -, és bitenkénti szorzásnak pedig definiáljuk azt a teoretikus műveletet, amire a #6-os kommentemben megadott összefüggések fennállnak. Ha szerencsénk van unik dologról van szó, és pontosan egy ilyen művelet létezik pontosan egy (jobb/bal) inverzzel.
Arra már én is rájöttem, hogy bitenként szorozni (ami a nand) vagy osztani nem sokra vezet.
> Nevezzük a xorzsást bitenkénti összeadásnak - elvégre összeadjuk a biteket, csak utána modozzuk 2
Ilyen alapon nevezzük a 9-et 3-nak, hiszen 3 az, csak még utána négyzetre emeltük. Ennek így se füle, se farka. Addig oké, hogy szokták használni a Bool-algebrában a + műveleti JELET arra, ami a logikában a kizáró vagy, de nem összeadásnak, hanem szimmetrikus differenciának hívják.
> és bitenkénti szorzásnak pedig definiáljuk azt a teoretikus műveletet, amire a #6-os kommentemben megadott összefüggések fennállnak.
Miért pont szorzásnak? Miért ne nevezzük inkább rakottkrumplinak?
A bitenkénti szorzás még úgy értelmezhető. Összeszorozzuk a biteket – mint kettes számrendszerben vett számokat –, és nincs gond, mivel amit kapunk, az benne van a {0, 1} halmazban, tehát bit. A bitenkénti szorzás megfelel az ÉS műveletnek.
Ami meg a #6-ban van, az vagy nem bitenkénti, vagy nem szorzás, ráadásul mivel nincs bitenkénti összeadás, ezért értelmezhetetlen is. (Nem, a XOR továbbra sem bitenkénti összeadás.)
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!