Kezdőoldal » Számítástechnika » Programozás » Ha egy unsigned változóba...

Ha egy unsigned változóba például -3as értéket másolok, akkor annak az értéke +3 vagy 0 lesz?

Figyelt kérdés

nov. 28. 14:33
 1/9 anonim ***** válasza:
Mondjuk ha a programozási nyelvet is leírnád...
nov. 28. 14:39
Hasznos számodra ez a válasz?
 2/9 anonim ***** válasza:
75%

C-ben kettes komplemensként lesz tárolva. Ha utána unsignedként pl. kiiratod, akkor egy jó nagy számot kapsz (4294967293). Ha signed-ként iratod ki, akkor -3 -mat.


#2-es, még csak warningot se kaptam fordítás során.

nov. 28. 15:28
Hasznos számodra ez a válasz?
 3/9 A kérdező kommentje:
C++
nov. 28. 15:37
 4/9 anonim ***** válasza:
4%

"#2-es, még csak warningot se kaptam fordítás során."


Lol

Éppen ez a baj.

nov. 28. 15:38
Hasznos számodra ez a válasz?
 5/9 anonim ***** válasza:
67%

4-es

Ott std::cout-tal kiiratva ugyanazt a nagy számot kaptam (kettes komplemens miatt), csak itt nem kell megadnom a kiíratásnál a típust (c-nél a printf-nél meg kell).


Egyébként az ilyen dolgokat simán tudod tesztelni, pl. erre a kérdésre ennyi kóddal néztem meg:


#include <iostream>

int main() {

unsigned int n = 0;

n=-3;

std::cout << n << std::endl;

return 0;

}

nov. 28. 15:45
Hasznos számodra ez a válasz?
 6/9 anonim ***** válasza:
67%

Ha egyébként castolod signed-ra, akkor megint -3 lesz


std::cout << (signed)n << std::endl;


Ennek az az oka, hogy a signed, meg unsigdned csak azt mondja meg, hogy hogy kell kezelni az adott memória területet, de egyébként meg ugyanúgy van tárolva a háttérben. Ha jobban érdekel, akkor a kettes komplemensnek nézz utána

nov. 28. 15:51
Hasznos számodra ez a válasz?
 7/9 anonim ***** válasza:
0%
-Wconversion
nov. 28. 16:15
Hasznos számodra ez a válasz?
 8/9 anonim ***** válasza:
12%
Bocs, -Wsign-conversion
nov. 28. 16:19
Hasznos számodra ez a válasz?
 9/9 anonim ***** válasza:
12%

Annyi a történet, hogy a sign konverzióra vonatkozó warn-ok alapértelmezés szerint le vannak tiltva. Legalábbis a C++ esetében.

Szóval, ott van a warning, csak be kell kapcsolni.

nov. 28. 16:26
Hasznos számodra ez a válasz?

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!