Size: a a a

Анархическая электроника

2021 February 15

V

Vasiliy in Анархическая электроника
в минус точно не улитает
источник

t

tmelinked_ in Анархическая электроника
Vasiliy
да в других языках то нормально такое условие выполняется
!burn
источник

S

Spanish Inquisition in Анархическая электроника
Vasiliy  обвинён в Ереси
источник

РД

Ратмир Диронин... in Анархическая электроника
Vasiliy
да в других языках то нормально такое условие выполняется
а в других языках интерпретаторы свои и компиляторы
источник

РД

Ратмир Диронин... in Анархическая электроника
это с++, а не другие языки. будь добр, соблюдай его особенности
источник

K

Kirill in Анархическая электроника
Vasiliy
причем тут сравниваю = у меня банально условие не проходит

byte a=30;
if (a*1000>20000) {....}
не срабатывает
if (static_cast<int>(a) * 1000 > 20000) {}
источник

AF

Alexey D. Filimonov ... in Анархическая электроника
Vasiliy
че за дичь такая
Числа считаются с начала диапазона. Если брать 16-битные инты, то Unsigned = 0,1,2,3,4...65535; Signed = -32768, -32767, -32766, ...+32767
Последний бит (самый левый) отвечает за знак.
Соответственно число больше 32767 ( последний бит = 1 ) при рассмотрении его двоичной формы как знаковой, будет отрицательным. Это значит что оставшиеся 15 битов - это количество которое надо отсчитать от минимума (т.е. от -32768)

60k = 1110 1010 0110 0000
1 бит знаковый, остается 110 1010 0110 0000 = 27232
Выводит оно -32768 + 27232 = -5536
источник

K

Kirill in Анархическая электроника
Kirill
if (static_cast<int>(a) * 1000 > 20000) {}
Это кстати классический вопрос на собеседовании )
источник

t

tmelinked_ in Анархическая электроника
Vasiliy
в минус точно не улитает
источник

t

tmelinked_ in Анархическая электроника
и поебать вообще на эти byte
источник

K

Kirill in Анархическая электроника
ну возьмёт он int8_t и что поменяется
источник

t

tmelinked_ in Анархическая электроника
ну так нехуй совать умноженное на миллион число и ожидать на выходе uint32_t
источник

t

tmelinked_ in Анархическая электроника
еще и parseInt придется делать перед выводом в монитор
источник

t

tmelinked_ in Анархическая электроника
учи язык, потом приходи, а не ыуыаа
источник

t

tmelinked_ in Анархическая электроника
покажешь рабочий код - разбаню
источник

t

tmelinked_ in Анархическая электроника
источник

AH

Alexandr Holodov in Анархическая электроника
Alexey D. Filimonov 🎠
Числа считаются с начала диапазона. Если брать 16-битные инты, то Unsigned = 0,1,2,3,4...65535; Signed = -32768, -32767, -32766, ...+32767
Последний бит (самый левый) отвечает за знак.
Соответственно число больше 32767 ( последний бит = 1 ) при рассмотрении его двоичной формы как знаковой, будет отрицательным. Это значит что оставшиеся 15 битов - это количество которое надо отсчитать от минимума (т.е. от -32768)

60k = 1110 1010 0110 0000
1 бит знаковый, остается 110 1010 0110 0000 = 27232
Выводит оно -32768 + 27232 = -5536
Всё таки не лень посчитать. Красавчик!
источник

AH

Alexandr Holodov in Анархическая электроника
В postgresql надысь тоже тип подбирал. SmallInt 16-битный именно такой диапазон может хранить. Челу, походу сложно 2**16 возвести =)
источник

AH

Alexandr Holodov in Анархическая электроника
Как, бля люди программируют контроллеры, не вкуривая за структуры данных. Это ж просто копипаста со стековерфлоу.
источник

TC

TeeGeRoN Corp in Анархическая электроника
Alexandr Holodov
Как, бля люди программируют контроллеры, не вкуривая за структуры данных. Это ж просто копипаста со стековерфлоу.
Гайвер всему вина
источник