Мамкин кодер или как IT ломает судьбы

Мамкин кодер или как IT ломает судьбы IT, Программист, Дети, Java, Python, Мальчик без детства

На пикабу не нашел. Засим дискуссию на тему "да ета фейк!" (sic!) объявляю открытой.

IT-юмор

5.7K постов52.6K подписчиков

Добавить пост

Правила сообщества

Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору

Вы смотрите срез комментариев. Показать все
23
Автор поста оценил этот комментарий

выбесило пиздец - "не люблю медленную технику и разработку под неё". сука, да когда-то за int вместо short канделябрами пиздили, а теперь мышкой щёлк-щёлк - и готов Hello World на Visual C размером в сотню метров

раскрыть ветку (7)
4
Автор поста оценил этот комментарий

более того, даже в книгах по обучению яп, там, где можно юзнуть short юзают int. Я пока не изучил как работает оперативка и сколько байт занимает каждый тип, делал так же

раскрыть ветку (6)
8
Автор поста оценил этот комментарий
Хм, ну вроде процы современные с интами эффективнее же работают? Да и автоприведение типов чаще всего по умолчанию к инту приводит.Чур канделябрами не бить, я вообще 1сник.
раскрыть ветку (4)
4
Автор поста оценил этот комментарий

это уже к ассемблерщикам надо обращаться. Я жабаист

1
Автор поста оценил этот комментарий

Автоприведение приводит не к инту, а к типу большего размера. По крайней мере, так это работает в с#, но думаю, это справедливо для любого сильно типизированного языка.

Преобразование к типу меньшего размера от языка к языку сильнее отличается.

В С при неявном приведении просто потеряются старшие разряды, а в C# компилятор выдаст ошибку.


процы современные с интами эффективнее же работают

x64 как-то пофигу, но можно получить выигрыш, если осуществлять преобразования над 32-разрядными числами, осуществляя их побитово как над частью одного 64-разрядного числа.

таких нюансов много и зависят они от конкретной архитектуры, языка и компилятора.

раскрыть ветку (2)
1
Автор поста оценил этот комментарий
Хм, вроде в java даже если два шорта сложить, инт получишь. Вот, нагуглил "При выполнении арифметических и побитовых преобразований все значения byte и short, а также char расширяются до int"
раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Да, вы правы. В c# то же самое: 8- и 16-битные целочисленные типы не имеют собственных арифметических операций, поэтому перед выполнением операции преобразуются до большего типа, т.е. до int'а.

В C с этими типами работал на микроконтроллерах, в т.ч. 32-разрядных, и они поддерживали арифметические операции, потому как там на преобразование до большего типа тратить память вообще не комильфо.

1
Автор поста оценил этот комментарий

Видимо не до конца изучили.


Всю вашу сэкономленную память съест выравнивание. Вы либо не экономите никак память даже использую короткие целочисленные типы, но с выравниванием, либо сильно снижаете производительность из-за невыровненных данных, но экономите крохи памяти.


Если ваша задача не требует конкретного типа, то самый разумный выбор это int.

Скажем речь о количестве учеников в классе. Ну уж больше 100 учеников не может быть. Можно short использовать? Хрен там, эффективнее использовать int.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку