Domande taggate «signed»



15
Numeri interi firmati e non firmati
Ho ragione a dire che la differenza tra un intero con segno e senza segno è: Unsigned può contenere un valore positivo più grande e nessun valore negativo. Unsigned utilizza il bit iniziale come parte del valore, mentre la versione firmata utilizza il bit più a sinistra per identificare se …

6
Perché è 0 <-0x80000000?
Di seguito ho un semplice programma: #include &lt;stdio.h&gt; #define INT32_MIN (-0x80000000) int main(void) { long long bal = 0; if(bal &lt; INT32_MIN ) { printf("Failed!!!"); } else { printf("Success!!!"); } return 0; } La condizione if(bal &lt; INT32_MIN )è sempre vera. Come è possibile? Funziona bene se cambio la macro …


11
~ x + ~ y == ~ (x + y) è sempre falso?
Questo codice viene sempre valutato come falso? Entrambe le variabili sono ints firmati a complemento di due. ~x + ~y == ~(x + y) Sento che dovrebbe esserci un numero che soddisfi le condizioni. Ho provato a testare i numeri tra -5000e 5000non ho mai raggiunto l'uguaglianza. C'è un modo …

8
C ++ converte una stringa esadecimale in intero con segno
Voglio convertire una stringa esadecimale in un intero con segno a 32 bit in C ++. Quindi, per esempio, ho la stringa esadecimale "fffefffe". La rappresentazione binaria di questo è 11111111111111101111111111111110. La rappresentazione intera con segno di questo è: -65538. Come posso fare questa conversione in C ++? Questo deve …
135 c++  integer  hex  signed 


2
Perché std :: ssize () è stato introdotto in C ++ 20?
C ++ 20 ha introdotto ilstd::ssize() funzione gratuita come di seguito: template &lt;class C&gt; constexpr auto ssize(const C&amp; c) -&gt; std::common_type_t&lt;std::ptrdiff_t, std::make_signed_t&lt;decltype(c.size())&gt;&gt;; Una possibile implementazione sembra usare static_cast, per convertire il valore restituito dalla size()funzione membro di cl ass C nella sua controparte firmata. Dal momento che il size() funzione …
99 c++  stl  unsigned  signed  c++20 

5
Confronti firmati / non firmati
Sto cercando di capire perché il seguente codice non emette un avviso nel punto indicato. //from limits.h #define UINT_MAX 0xffffffff /* maximum unsigned int value */ #define INT_MAX 2147483647 /* maximum (signed) int value */ /* = 0x7fffffff */ int a = INT_MAX; //_int64 a = INT_MAX; // makes all …
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.