|
-16 / 0 / 0
Регистрация: 14.04.2022
Сообщений: 82
|
||||||
Почему положительное меньше чем отрицательное?24.09.2022, 18:49. Показов 3088. Ответов 38
почему отрицательное значение int больше чем положительное значение unsigned
0
|
||||||
| 24.09.2022, 18:49 | |
|
Ответы с готовыми решениями:
38
Минимальное положительное и максимальное отрицательное Найти минимальное положительное и максимальное отрицательное в массиве |
|
Вездепух
13215 / 6847 / 1826
Регистрация: 18.10.2014
Сообщений: 17,355
|
|||||||||||||||||||||||||||
| 25.09.2022, 11:31 | |||||||||||||||||||||||||||
|
Например
(a < b) равно 0.Что скажет ваш Паскаль? Пробуем:
std::cmp_less
std::cmp_less умудряется корректно обработать эту ситуацию.
0
|
|||||||||||||||||||||||||||
|
Злостный нарушитель
10889 / 5825 / 1288
Регистрация: 12.03.2015
Сообщений: 26,888
|
||
| 25.09.2022, 11:48 | ||
|
Будем считать, что тот, кто пытается сравнивать знаковое с беззнаковым, тот ССЗБ.
0
|
||
|
фрилансер
6502 / 5740 / 1134
Регистрация: 11.10.2019
Сообщений: 15,382
|
||
| 25.09.2022, 14:24 | ||
0
|
||
|
Злостный нарушитель
10889 / 5825 / 1288
Регистрация: 12.03.2015
Сообщений: 26,888
|
||
| 25.09.2022, 14:26 | ||
|
0
|
||
|
из племени тумба-юбма
|
|
| 25.09.2022, 16:41 | |
|
0
|
|
|
Злостный нарушитель
10889 / 5825 / 1288
Регистрация: 12.03.2015
Сообщений: 26,888
|
|
| 25.09.2022, 16:54 | |
|
0
|
|
|
из племени тумба-юбма
|
|
| 25.09.2022, 17:31 | |
|
0
|
|
|
Злостный нарушитель
10889 / 5825 / 1288
Регистрация: 12.03.2015
Сообщений: 26,888
|
|
| 25.09.2022, 17:36 | |
|
мама Стифлера, а, так это не по умолчанию.
0
|
|
|
из племени тумба-юбма
|
|
| 25.09.2022, 17:54 | |
|
Verevkin, ну по умолчанию, флаги для компилятора не стоят, или стоят по дефолту какие то. В локальном компиляторе(IDE), ты устанавливаешь нужные тебе флаги и все. Короче настроил как тебе надо один раз и забыл. Как то так.
0
|
|
|
Злостный нарушитель
10889 / 5825 / 1288
Регистрация: 12.03.2015
Сообщений: 26,888
|
|
| 25.09.2022, 17:56 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 25.09.2022
Сообщений: 25
|
|
| 25.09.2022, 18:49 | |
|
TheCalligrapher, Я хотел объяснить как получилось, что отрицательное число при сравнении могло превратится в другое число, которое больше, и это не просто "ошибка сравнения" или Неопределённое Поведение(в конкретном компиляторе), а предсказуемое аппаратно-зависимое и уже стандартное представление чисел. А так да, в идеальном мире идей, спецификации важней, но такое поведение это скорее наследство аппаратных особенностей реализации ставнения и представления чисел в компьютерах, а спецификации просто описывая подобное поведение сохраняют предсказуемость уже написанных компиляторов и правильность уже написанных программ для них
Я бы просто советовал знать компилятор на котором пишешь, чем надеятся, что спецификации всегда помогут(часто помогают, но если что–то реализовано нелогично, то все равно приходится писать алтернативными методами(ну или менять компилятор, но идеальных может и не быть)) //Советую сравнивать только числа в переменных одинакового типа иначе выполнять явное приведение типа — так большинству программистов, я надеюсь, будет проще читать код.
0
|
|
|
Злостный нарушитель
10889 / 5825 / 1288
Регистрация: 12.03.2015
Сообщений: 26,888
|
|
| 25.09.2022, 18:52 | |
|
Вы маньяки-чикатилы.
Прекратите немедленно! ![]()
0
|
|
|
Вездепух
13215 / 6847 / 1826
Регистрация: 18.10.2014
Сообщений: 17,355
|
||||
| 25.09.2022, 20:08 | ||||
|
В данном примере мы имеем дело с дилеммой, с которой сталкивается именно компилятор. И вариантов выхода из этой ситуации тут множество (я вижу навскидку как минимум четыре варианта). Никакого однозначного или просто предпочтительного варианта тут "компьютер" не предлагает. Выбор способа сравнения в таких ситуациях целиком и полностью лежит исключительно на компиляторе, т.е. именно на спецификации. Ссылку на историю обсуждения этого вопроса в С я уже давал.
0
|
||||
|
фрилансер
6502 / 5740 / 1134
Регистрация: 11.10.2019
Сообщений: 15,382
|
|
| 25.09.2022, 20:21 | |
|
Verevkin, вроде обычная для раздела C++ размеренная беседа
0
|
|
|
0 / 0 / 0
Регистрация: 25.09.2022
Сообщений: 25
|
||||
| 26.09.2022, 14:27 | ||||
|
TheCalligrapher,
Вот http://programming-lang.com/ru... /j229.html тут пример того, что иногда компилятор думает больше, чем просто трансляция программы самым однозначным способом. Да, решение такое: при сравнении разных типов писать их явное приведение, потому что правильно решить к какому из типов операндов делать приведение в общем случае не возможно решить. Многие могут сказать что использование машинно-зависимых типов уменьшает переносимость кода(если почему-то 1 машинное слово == 9 битам), но вот на конкретной машине я думаю что писать просто int, long int, long long int, которые могут быть равны или не равны определённым машинным областям памяти или не меньше какой–то области памяти, а ещё long int может быть равен long long int если 32-битная машина ну это сложнее всё просчитать, чем писать uint8_t, uint16_t, uint32_t, uint64_t и int8_t, int16_t, int32_t, int64_t и float32_t, float64_t и программными float8_t, float16_t, fixed8_t, fixed16_t, fixed32_t, fixed64_t. Про то что int короче писать могу сказать, что сам пользуюсь define'ами u8,u16,u32,u64 и s8,s16,s32,s64 и fl8,fl16,fl32,fl64 и fx8,fx16,fx32,fx64 и мне стало удобнее и проще писать. //Совет про то, что: не нравятся спецификации стандарта, не пиши на языке C или если компилятор языка C не исполняет спецификации языка C значит он не компилятор языка C пропадают когда вот TCC(Tiny C Compilier) может использовать точку входа как функцию _start() и не грузить из msvcrt.dll ещё набор встраиваемых при компиляции функций, а GCC(GNU C Compilier) пишет на _start() ошибку компиляции. Да и всё равно язык C это естественное развитие макросов ассемблера таких как invoke, поэтому моё мнение что самый низкоуровневый высокоуровневый язык программирования будет C–подобным.
0
|
||||
|
Вездепух
13215 / 6847 / 1826
Регистрация: 18.10.2014
Сообщений: 17,355
|
|||||
| 26.09.2022, 17:48 | |||||
|
Никакой С компилятор не станет реализовывать особенности, которые противоречат спецификации языка. Любая свобода реализации "особенностей" для корректного кода располагается в рамках разрешенных стандартом языка неопределенных, неспецифицированных или определяемых реализацией поведений. Выход за эти рамки - баги компилятора, которые будут исправляться с максимально возможной скоростью. _start - зарезервированный идентификатор.
0
|
|||||
|
0 / 0 / 0
Регистрация: 25.09.2022
Сообщений: 25
|
||||||
| 01.10.2022, 04:38 | ||||||
|
TheCalligrapher,
Я просто не могу поверить в то, что все в мире, кто писал C–подобный компилятор будут желать реализовать все спецификации точно. Да и
Добавлено через 2 минуты
0
|
||||||
|
Вездепух
13215 / 6847 / 1826
Регистрация: 18.10.2014
Сообщений: 17,355
|
|||
| 01.10.2022, 05:15 | |||
|
Если компилятор намеренно не соответствует спецификации языка С, то никто, никогда и нигде не будет называть его компилятором языка С. Если компилятор намеренно не соответствует спецификации языка С, то никто, никогда и нигде не будет называть его компилятором языка С.
0
|
|||
|
0 / 0 / 0
Регистрация: 25.09.2022
Сообщений: 25
|
|||||||
| 01.10.2022, 06:50 | |||||||
|
TheCalligrapher, как я уже писал язык C до некоторого времяни не был стандартизован(а может я старой школы и пишу на древнем компиляторе языка C, который не поддерживает ANSI C), ну а то насколько код программы C–шный можно долго думать(а если там > 50%
Да, частично согласен, что
0
|
|||||||
| 01.10.2022, 06:50 | |
|
Машинная арифметика.Определить отрицательное(положительное) число
Выяснить, какое число встречается раньше — положительное или отрицательное
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера 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
хоп хоп хоп хидахоп, а я кладую))
|