M-a interesat să știu ce s-ar întâmpla dacă voi atribui o valoare negativă unei variabile nesemnate.
Codul va arăta cam așa.
Acest lucru nu mi-a dat o eroare de compilare. Când am început programul, nVal a primit o valoare ciudată! S-ar putea să fie atribuită nVal un fel de valoare din 2 cifre ?
Pentru un răspuns oficial - Secțiunea 4.7 [conv.integral]
"Dacă tipul destinației nu este specificat, valoarea rezultată este cel mai mic întreg nesemnat comparabil cu întregul original (modulo 2 ^ n, unde n este numărul de biți folosiți pentru a reprezenta tipul nesemnat). [Notă: în expresie binară, această conversie este conceptuală și nu există nicio modificare în bitmap (dacă nu există trunchiere).
Acesta va atribui un eșantion de bit reprezentând -5 (în complementul 2) pentru int nesemnat. Ceea ce va fi o mare valoare nesemnată. Pentru 32 de biți, va fi 2 ^ 32 - 5 sau 4294967291
- Secretul a ieșit Iată ce se întâmplă dacă lucrezi doar 10 minute pe zi, cu adevărat
- Piciorul nerăbdător sări De ce se întâmplă și cum să rezolvi problema - Metro
- Ce se întâmplă dacă pierd o doză de corticosteroizi Un expert răspunde
- Bascii au arătat fotografii înainte și după izolare și au surprins apariția rușilor Value
- Nu ar trebui să respingem valoarea secțiilor Nightingale; Times Nursing