Endre1999 kérdése:
Int a=130; char c = -a; printf ("%d\n", c) ; Az eredmény 126, de miért, Mi történik a belső memóriában?
Figyelt kérdés
126(10) = 1111110(2)
130(10) = 10000010(2)
A belső memória között nem látom az összefüggést.
2020. jan. 28. 00:57
1/4 anonim ![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz1.png)
válasza:
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Nem értem a kérdést. A - karakterkódot íratsz ki itt.
2/4 anonim ![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz1.png)
válasza:
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Vagyis nem is ezt: - hanem ezt ~.
3/4 anonim ![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz2.png)
válasza:
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
A kódod elvileg a következő:
int a=130;
char c = -a;
printf ("%d\n", c);
Tehát, "a" integer változó értéke 130. "c" karakter típusú változó értékének pedig az "a" -1-szeresét akarod értékül adni. Vagyis c-nek -130-at akarsz beállítani. Mivel a karakter típusú változó is unsigned, nem vehet fel negatív értéket. Ergo túlcsordul, csak nem fölfele, hanem lefele, tulajdonképpen "visszacsordul". Mivel 8 bit nagyságú a c, ezért az új értéke 2^8-130 lesz, vagyis 126.
4/4 anonim ![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz1.png)
válasza:
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
char: 1 byte, azaz 8 bit, unsigned char 0..(2**8-1), signed char(-(2**7-1)..+(2**7-1)
Ez még segít kiirni bináris formában :
Kapcsolódó 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!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!