Форум программистов, компьютерный форум, киберфорум
CoderHuligan
Войти
Регистрация
Восстановить пароль

Как запомнить знаковые и беззнаковые диапазоны максимальных значений

Запись от CoderHuligan размещена 05.06.2024 в 17:36
Показов 4951 Комментарии 46

Не будем о том зачем это нужно. Это может пригодиться в самых разных случаях.
Итак, как же запомнить эти числа тем, кто не очень дружит с запоминанием чисел.
Вот эти диапазоны:
Code
1
2
3
4
5
6
signed char          -128, 127
unsigned char        255
signed short int    -32768, 32767
unsigned short int  65535
signed long int      -2147483648, 2147483647
unsigned long int    4294967295
Чтобы крепко запомнить эти значения, надо прежде всего выявить некоторые закономерности в самих числах.
1. все знаковые отрицательные (предельные значения естественно) числа всегда оканчиваются на цифру 8
2. все знаковые положительные числа всегда оканчиваются на цифру 7
3. все беззнаковые предельные числа всегда оканчиваются на цифру 5
Итак это легко запомнить. При этом для простого char достаточно помнить числа 12 и 25 (-128, 127 и 255).
Сложнее запомнить тип short и int. Тут подход тот же самый: выявляем закономерности. Возьмем тип знаковый short. Это числа -32768 и 32767. Мы видим что эти числа различаются только последней цифрой, которая как мы уже знаем, может быть только 7 или 8. Значит нам нужно запомнить только 4 цифры: 3276. Мы замечаем, что все цифры разные, и что тройка на единицу больше чем следующая за ней цифра 2. А цифра 7 больше на единицу следующей за ней цифры 6. К тому же цифры 3 и 7 нечетные, а цифры 2 и 6 четные. Поэтому достаточно запомнить только числа 37 или 26, чтобы по ним пользуясь правилами закономерности, вспомнить всё число 3276.
Далее беззнаковое short. Это число 65535. Сразу отбрасываем 5: 6553. Надо запомнить 4 цифры. Сразу отмечаем, что беззнаковое начинается на цифру 6, которая вдвое больше, чем первая цифра знакового: 3. Далее:
1. вторая цифра на единицу меньше, чем первая.
2. следующая одинакова со второй. А последняя тройка вдвое меньше чем первая.
Итак идем далее и берем тип int.
Это числа -2147483648, 2147483647 и 4294967295.
Как запомнить это? Опять выявляем закономерности. Числа имеют по 10 цифр. Отбрасывая последнюю цифру,которая может быть только 7, 8 или 5 (для беззнакового предельного числа), мы имеем уже 9 цифр.
Берем знаковое число без последней цифры. Значит нам нужно запомнить число 214748364. Сразу отметим и запомним, что оно начинается на 2, а оканчивается на вдвое большую цифру; 4. Разделим оставшиеся цифры на блоки для большей ясности:
147 48 36.
Что мы здесь видим, какие закономерности?
1. число 47 тоже самое число, которым оканчивается положительно знаковое число: 2147483647.
2. цифра 1 меньше на единицу, чем первая цифра: 2147483647. (Помните, как в типе short?).
3. число 48 тоже самое число, которым заканчивается отрицательное предельное число: 2147483648.
4. числа 48 и 36 имеют одинаковую особенность, что вторая цифра в два раза больше чем первая.
5. цифра 3 на единицу меньше цифры 4 в числе 48.
При этом достаточно запомнить, что число начинается на 2, и цифры 48 и 36.

Теперь берем беззнаковое целое 4294967295. Как его запомнить? Сразу отбрасываем пятерку, получая 429496729.
Отмечаем, что беззнаковое начинается на 4, вдвое большее цифры 2 в знаковом числе. Далее:
1. видим, что число 29 повторяется дважды: 429496729, в конце и сразу после первой цифры 4. И что вторая цифра 2 вдвое меньше первой цифры 4.
Выделим блоки: 4 29 49 67 29.
2. цифра 7, которая стоит перед последним числом 29, есть разность 9 - 2 = 7.
3. цифра 6, которая стоит перед цифрой 7, на единицу меньше семерки.
4. число 49, которое стоит перед чцифрой 6 (или числом 67) получается 6 * 7 = 42 + 9 - 2 = 49.
5. или цифра 9 в числе 49 есть перевернутая цифра 6 в числе 67.
6. тогда, цифра 4 в числе 49 есть вторая после первого числа 29 и равна первой цифре предельного беззнакого числа: 4 29 49 67 29 5.
Вот кажется и всё на этом. Если кто выявит и другие закономерности, которые упрощают запоминание сих чисел, прошу указать это в комментариях. Спасибо за внимание!
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 46
Комментарии
  1. Старый комментарий
    Аватар для CoderHuligan
    обращаться к ним надо не по значениям, а по именам,
    сами значения которых хранятся в <limits.h>
    и для каждой платформы эти величины в общем случае РАЗНЫЕ!
    Вы мыслите с точки зрения программиста на си подобных языках, и не только. То есть на ЯВУ. А есть языки под конкретную архитектуру процессоров, например x86. И вот тут знать эти значения как они есть просто необходимо. Я не говорю, что обязательно их ПОМНИТЬ, но было бы не плохо.
    Запись от CoderHuligan размещена 08.06.2024 в 15:36 CoderHuligan вне форума
  2. Старый комментарий
    Аватар для XLAT
    Цитата Сообщение от CoderHuligan
    Это ограничения для целочисленных констант. Как же не константы?
    перечень архитектур с 9 битным байтом:
    Code
    1
    2
    3
    
    Digital Equipment Corporation PDP-6/10
    IBM 701/704/709/7090/7094
    UNIVAC 1103/1103A/1105/1100/2200,
    Запись от XLAT размещена 08.06.2024 в 15:44 XLAT вне форума
  3. Старый комментарий
    Аватар для CoderHuligan
    перечень архитектур с 9 битным байтом:
    Спасибо, посмеялся.
    Запись от CoderHuligan размещена 08.06.2024 в 16:27 CoderHuligan вне форума
  4. Старый комментарий
    Аватар для CoderHuligan
    Вы бы еще БЭСМ-6 вспомнили с его 48 битным словом.
    Запись от CoderHuligan размещена 08.06.2024 в 16:54 CoderHuligan вне форума
  5. Старый комментарий
    Аватар для XLAT
    Цитата Сообщение от CoderHuligan
    Спасибо, посмеялся.
    https://en.cppreference.com/w/cpp/language/types
    не слепой да увидит...

    Цитата Сообщение от CoderHuligan
    Спасибо, посмеялся.
    представьте себе, чем занимаются остальные челы вместо зубрежки волшебных чисел:
    https://www.youtube.com/@CUserGroupRussia/videos

    посмотрите хотя бы парочку, чтобы было по серьезному...
    Запись от XLAT размещена 08.06.2024 в 18:24 XLAT вне форума
  6. Старый комментарий
    Аватар для CoderHuligan
    представьте себе, чем занимаются остальные челы
    Давно подписан.
    "По крайней мере". Это об этом речь? То есть; не более чем. Так речь же идет не о наименовании базовых типов в конкретном ЯП, а базовых РАЗМЕРНОСТЯХ машинного слова и ячеек памяти, размерах регистров в процессорах ШИРОКО распространенных архитектур. Имеющий уши да услышит.
    Запись от CoderHuligan размещена 09.06.2024 в 11:30 CoderHuligan вне форума
  7. Старый комментарий
    Аватар для CoderHuligan
    А почему спрашивается был выбран (оставлен) именно размер кратный байту, т.е. 8 бит, а не 7, 9, 10 и т.д.? Вот не знаю, может кто прояснит. Скорее всего было удобно переводить двоичную систему в другую, ведь там используется степень двойки. Ок? А степень двойки как раз и есть прогрессия 2 4 8 16 32 64 ....
    То есть как бы мои оппоненты не извивались, предлагая 9 битные, 40 битные архитектуры, но есть некий фундаментальный тип размерности, который произрастает из двоичной системы счисления.
    А может быть и еще потому, что например в числе 4294967295 присутствуют 3 девятки, что есть перевернутые шестерки: 4294967295, причем стоят они на нечетных местах (по порядку).
    И в 64 битном числе 18 446 744 073 709 551 615, тоже есть эти числа..
    Запись от CoderHuligan размещена 09.06.2024 в 19:55 CoderHuligan вне форума
  8. Старый комментарий
    Аватар для CoderHuligan
    Число 4294967295 можно еще поделить на две половины, так как точно по середке стоит число 96:
    4294 96 7295
    То есть точно по середине находятся две зеркальные цифры!!!
    Значит без них получаем два четырехзначных числа:
    4294 и 7295
    Их особенность в том, что числа 94 и 95 идут по порядку (разница на единицу ):
    4294 7295
    Также видим числа 94, 95 и 96..
    А числа 42 и 72 имеют одинаковую вторую цифру 2:
    42 94 72 95
    Это очень любопытно.
    И число 4294 в начале и конце имеет одинаковую цифру 4.
    А в числе 7295, цифра 5 получается если взяв число 72 за отправное, вычесть; 7 - 2 = 5. А цифра 9 получается если сложить: 7 + 2 = 9.
    Это тоже очень замечательное обстоятельство.. Это даже не математика, а магия чисел..
    Запись от CoderHuligan размещена 10.06.2024 в 08:18 CoderHuligan вне форума
  9. Старый комментарий
    Аватар для Аватар
    а где bigint и всякие float и real? и вообще какая фигня ваша заливная рыба )) я номер мобилы своей за 15 лет не запомнил и не собираюсь запоминать, а тут.. какать я хотел на те собеседование, которых не устроит ответ, что макс для знакового инта чуть более двух миллиардов или 2^31-1 )
    Запись от Аватар размещена 10.06.2024 в 13:23 Аватар вне форума
  10. Старый комментарий
    Аватар для CoderHuligan
    Насчет рыбы: кому как.. А по поводу мобилы. Вот я раньше помнил свой номер, и мне очень это помогало. Сейчас номер поменялся, и надо бы снова запомнить.
    а где bigint и всякие float и real?
    Что касается больших чисел, то к данной теме это не имеет никакого отношения, от слова вообще. По поводу плавающей точки. Дело в том, что дробные числа можно представить при помощи целых чисел (масштабирование). Обратное не верно. При обратном преобразовании происходит потеря точности, что не есть хорошо. Вот почему целые числа это первичные числа. А всякие float могут быть представлены в разных форматах. А у целых чисел формат один единственный.
    Запись от CoderHuligan размещена 10.06.2024 в 13:53 CoderHuligan вне форума
  11. Старый комментарий
    Аватар для Usaga
    Не будем о том зачем это нужно. Это может пригодиться в самых разных случаях.
    А мне было бы интересно узнать про такие случаи. А то без мотивационной части польза статьи как будто бы неопределена...
    Запись от Usaga размещена 12.06.2024 в 09:38 Usaga вне форума
  12. Старый комментарий
    Аватар для CoderHuligan
    Цитата Сообщение от Usaga
    было бы интересно узнать про такие случаи.
    Во-первых, что-либо помнить в сфере своей проф-деятельности всегда хорошо и приветствуется.
    Во-вторых, а вдруг у вас под рукой не окажется справочника по языку. Это может понадобиться в случае непредвиденных обстоятельств. А вам нужно константу запилить, например на asm. Вот таблица умножения мне требуется почти постоянно. Я её наизусть знаю, и это помогает. Помню, слышал, что один программист наизусть помнил таблицу ascii. А другой по памяти восстановил исходный код компилятора си. Но это конечно уникумы.
    В-третьих, для быстрой оценки, а может ли тут возникнуть переполнение при определенных входных условиях. И какие эти условия должны быть.
    Запись от CoderHuligan размещена 12.06.2024 в 11:25 CoderHuligan вне форума
  13. Старый комментарий
    Цитата Сообщение от CoderHuligan
    Линейка размерностей: 8/16/32/64 стала де факто НОРМОЙ в производстве ШИРОКО распространенных процессоров.
    А ПРОГРАММНЫЕ платформы с 48-разрядными и 36-разрядными словами пока незаменимы, даже если программы выполняются на физически 64-разрядных процессорах.
    Запись от politoto размещена 13.06.2024 в 08:05 politoto вне форума
  14. Старый комментарий
    Цитата Сообщение от CoderHuligan
    Спасибо, посмеялся.
    посмейтесь ещё над 2200


    https://youtu.be/dqCIbWhGmFk
    Запись от politoto размещена 13.06.2024 в 08:21 politoto вне форума
  15. Старый комментарий
    Аватар для CoderHuligan
    пока незаменимы, даже если программы выполняются на физически 64-разрядных процессорах.
    Только путем потери эффективности, так как приходиться использовать дополнительные операции типа сдвига и т.п, чтобы подстроиться под конкретный процессор. Вы наверно имеете ввиду какие-то очень древние программы в каком-то ну очень малом сегменте индустрии.
    А я имею ввиду широко распространенные линейки процессорных архитектур. Я прекрасно знаю, что например в языке euphoria размер типа integer на пару бит меньше 32 бит и составляет от −1073741824 до 1073741823
    Но это предпочтение тех, кто пишет компиляторы. К размерам машинных слов это не имеет никакого отношения. Непонятки возникли видимо, что вы мыслите с точки зрения создателей софта.
    Запись от CoderHuligan размещена 13.06.2024 в 11:33 CoderHuligan вне форума
  16. Старый комментарий
    Цитата Сообщение от CoderHuligan
    К размерам машинных слов это не имеет никакого отношения. Непонятки возникли видимо, что вы мыслите с точки зрения создателей софта.
    С тех пор, как в середине 1960-х стали отделять программную архитектуру семейства от физических архитектур контретных моделей, создатели машин могут выбирать и менять технически и экономически удобную структуру внутренних слов, сохраняя программную совместимость.
    Запись от politoto размещена 13.06.2024 в 13:35 politoto вне форума
  17. Старый комментарий
    Пипец... Какой только фигней люди не занимаются. Ни разу еще не пригождалось помнить наизусть эти передельные значения. Можно пример, где это пригодится?
    А таблицу умножения тоже знать не обязательно раз у нас есть калькулятор в каждом утюге
    Таблица умножения - деньги, например, посчитать. Просто быстрее, чем телефон доставать и калькулятор искать. А максимальное значения лонга мне зачем помнить? Чтобы что?
    Запись от Celavesterys размещена 13.06.2024 в 16:16 Celavesterys вне форума
  18. Старый комментарий
    Чтобы знать, хватит ли лонга, чтобы посчитать население Земли?
    Запись от politoto размещена 13.06.2024 в 16:19 politoto вне форума
  19. Старый комментарий
    Чтобы знать, хватит ли лонга, чтобы посчитать население Земли?
    Но для этого достаточно прикинуть порядок и старшие цифры.
    Запись от politoto размещена 13.06.2024 в 16:20 politoto вне форума
  20. Старый комментарий
    Чтобы знать, хватит ли лонга, чтобы посчитать население Земли?
    Мне нужно для этого помнить число, достаточно представлять порядок. И сомнительно, что мне эта мысль про лонг понадобится где-то вне написания кода, где у меня уже есть все константы.
    Запись от Celavesterys размещена 13.06.2024 в 17:05 Celavesterys вне форума
 
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru