Kezdőoldal » Számítástechnika » Programozás » Hogy működik a bitenkénti...

Hogy működik a bitenkénti negálás (c-ben)?

Figyelt kérdés
pl a 16ot ha bitenként negálom,miért lesz -17?
2016. dec. 25. 15:41
1 2
 1/16 anonim ***** válasza:
89%
Mert a MSB az előjelet jelöli, és ha megfordítod az összes bitet, az MSB is változik.
2016. dec. 25. 15:47
Hasznos számodra ez a válasz?
 2/16 anonim ***** válasza:
89%
Mert a CPU kettes komplementeres számábrázolást használ.
2016. dec. 25. 15:48
Hasznos számodra ez a válasz?
 3/16 anonim ***** válasza:
0%
Egyes komplemens.
2016. dec. 25. 17:06
Hasznos számodra ez a válasz?
 4/16 anonim ***** válasza:

Kettes komplemens.

pen-dragon: egyes komplemens esetén 16-ból -16 lenne bitenkénti negálás után. De a kettő valóban nagyon hasonló.

2016. dec. 25. 17:23
Hasznos számodra ez a válasz?
 5/16 anonim ***** válasza:
0%

Nem hasonló.

A kettes komplemens képzés úgy történik, hogy bitenként negálsz, majd az eredményhez hozzáadsz egyet.


A kérdező, állítása szerint CSAK negált.

2016. dec. 25. 17:30
Hasznos számodra ez a válasz?
 6/16 anonim ***** válasza:
Az egyes komplemens a bitenkénti negálás, ez tény, de a kérdés nem ez volt...hanem hogy mért lesz a 16-ból -17... na, ez nem azért mert egyesk komplemens, hanem azért mert kettes komplemens.
2016. dec. 25. 17:37
Hasznos számodra ez a válasz?
 7/16 anonim ***** válasza:
0%

A kérdező bitenként negált, mégis mást kapott, mint amit várt.

Erre írtam az egyes komplemenst, hogy hátha segít neki, mivel ő tudja, hogy egyes komplemenst akart képezni, vagy csak negálni a biteket.

Az mindenesetre érthető, legalábbis annak kéne lennie, hogy ha csak egyes komplemenst képez valaki, akkor abból nem lesz automatikusan kettes, tehát meg kéne vizsgálni a történéseket.

2016. dec. 25. 17:42
Hasznos számodra ez a válasz?
 8/16 anonim ***** válasza:
dragonka, te nem mondtál semmit a kérdezőnek, beböfögted, hogy "egyes komplemens". Hogy mit akarsz vele kifejezni, nuku. A kérdezőnek valószínűleg nincs sok fogalma arról, hogy mit akar csinálni, egyszerűen kérdezte, hogy mi a bitenkénti negálás, és miért kapott -17-et ha 16-ot bitenként negálta. A kérdésből már látszik, hogy a kérdező nincs tisztában a komplemensekkel, és hogy igazából kettes komplemens eredményét kapta. De okoskodj még, nyugodtan :)
2016. dec. 25. 20:01
Hasznos számodra ez a válasz?
 9/16 anonim ***** válasza:
0%

A kérdezőnek:


A helyzet az, hogy a negálás, a bitek invertálása alapvetően azt jelenti, hogy egy bináris szám bitjei ha azok nullák, akkor egyre, ha egyesek akkor nullára változnak.

Tehát, például a

00011110 invertálás után

11100001 lesz. Ez pontosan megegyezik a kiinduló szám egyes komplemensével.

Kettes komplemensről szó nincs!


A gondot az okozta (legalábbis nekem), hogy te szó szerint bitenkénti negálást írtál. Én ezt úgy értelmeztem, hogy patternnel negáltad a biteket - akár egyesével - nem pedig a teljes változót egy lépésben a "~" (negáció) operátorral. Már pedig te vélhetőleg így tettél. Nos, ez hiba volt.

Utóbbi ugyanis az operandus kettes komplemensét adja eredményül.

Ha a jövőben, C-ben egyes komplemens képzésre (vagy n-edik bit negálására) volna szükséged, akkor azt NE a "~" operátorral végezd.

2016. dec. 26. 03:47
Hasznos számodra ez a válasz?
 10/16 anonim ***** válasza:
91%

Többiek:

pen-dragon tuti arra hajt, hogy neki legyen a legkisebb a hasznos válaszainak az aránya.


Kérdező:

pen-dragon válaszait vedd figyelmen kívül


pen-dragon:

Tudom, hogy troll vagy, de azért leírom mi a gond a válaszoddal:

Hülyeség, hogy az egyesével történő negálással más eredmény jön ki mint az egy lépésben történttel. Mért lenne más eredmény? Egyébként nem hiszem hogy a kérdező egyesével negálta volna a biteket.

Egyes komplemensől sehol nincs szó. Az egy számábráolás. A Kérdező csak negálta a biteket, majd azt kiíratta 10-es számrendszerben. Ennél a kiírásnál kettes komplemens kódként lett értelmezve a bitsorozat.


Ha egyes komplemens lenne, akkor azt írta volna neki ki a program, hogy -16.


Részemről én itt befejeztem a vitát, ha válaszolsz, én már nem fogok rá reagálni.

2016. dec. 26. 12:03
Hasznos számodra ez a válasz?
1 2

További kérdések:




Minden jog fenntartva © 2025, 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!