Запитання з тегом «signed»

У обчисленнях підпис - це властивість типів даних, що представляють числа в комп'ютерних програмах.


17
Ітерація над std :: vector: непідписаний проти підписаної змінної індексу
Який правильний спосіб ітерації над вектором в C ++? Розглянемо ці два фрагменти коду, цей відмінно працює: for (unsigned i=0; i < polygon.size(); i++) { sum += polygon[i]; } і цей: for (int i=0; i < polygon.size(); i++) { sum += polygon[i]; } що породжує warning: comparison between signed and …
470 c++  stl  unsigned  signed 

15
Підписано проти непідписаних цілих чисел
Чи правильно я стверджую, що різниця між цілим числом, що підписується та не підписується, полягає в: Непідписаний може містити більше позитивне значення, а не негативне значення. Непідписаний використовує провідний біт як частину значення, тоді як підписана версія використовує ліворуч-біт, щоб визначити, чи є число позитивним чи негативним. підписані цілі числа …

6
Чому дорівнює 0 <-0x80000000?
У мене нижче проста програма: #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; } Умова if(bal &lt; INT32_MIN )завжди вірна. Як це можливо? Це добре працює, якщо я зміню макрос на: #define …


11
~ x + ~ y == ~ (x + y) завжди хибно?
Чи завжди цей код оцінюється як хибний? Обидві змінні - це два підписані доповнення. ~x + ~y == ~(x + y) Я відчуваю, що має бути якесь число, яке задовольняє умовам. Я спробував перевірки чисел між -5000і , 5000але ніколи не досягається рівність. Чи є спосіб скласти рівняння для пошуку …

8
C ++ перетворити шістнадцяткову рядок у підписане ціле число
Я хочу перетворити шістнадцяткову рядок у 32-бітове ціле число, підписане в C ++. Так, наприклад, у мене є шістнадцятковий рядок "fffefffe". Двійкове представлення цього є 11111111111111101111111111111110. Підписане ціле представлення цього: -65538. Як зробити цю конверсію в C ++? Це також потрібно працювати для негативних чисел. Наприклад, шістнадцятковий рядок "0000000A", який …
135 c++  integer  hex  signed 


2
Чому в C ++ 20 вводиться std :: ssize ()?
C ++ 20 представив std::ssize()безкоштовну функцію, як показано нижче: 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;; Можлива реалізація, схоже, використовує static_castдля перетворення повернутого значення size()функції члена cl ass C в його підписаний аналог. Оскільки size()функція члена C завжди повертає негативні значення, чому б хто-небудь хотів зберігати …
99 c++  stl  unsigned  signed  c++20 

5
Підписання / без підпису порівняння
Я намагаюся зрозуміти, чому наступний код не видає попередження у вказаному місці. //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 warnings go away …

12
Виявлення переписаного переповнення в C / C ++
На перший погляд, це питання може здатися дублікатом Як виявити переповнення цілих чисел? , проте насправді це суттєво відрізняється. Я виявив, що виявлення переповнення цілого числа без підпису є досить тривіальним, виявляючи підписане переповнення в C / C ++ насправді складніше, ніж думає більшість людей. Найбільш очевидним, але наївним способом …

6
Що станеться, якщо я присвоюю відмінне значення непідписаній змінній?
Мені було цікаво дізнатись, що станеться, якщо я призначу негативне значення непідписаній змінній. Код буде виглядати приблизно так. unsigned int nVal = 0; nVal = -5; Це не дало мені жодної помилки компілятора. Коли я запускав програму, nValїй було присвоєно дивне значення! Чи може бути, що присвоюється значення доповнення деяких …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.