Pull to refresh
9
@lain8donoread⁠-⁠only

Rust Evangelist

Send message

Исключительно позитивный образ КНР в статье наводит на мысли о том, что у Dalle-2 и автора статьи много общего.

Рофл в пунктуации авторской(

Присаживайтьсесь, наливайте чаю, сейчас мы будем делать модные татуировки)

Hidden text

Уверяю вас, отсутствие пробела перед первой скобкой в тексте выше не является банальной небрежностью. Однако багодаря этому эти знаки воспринимаются, как скобки, так и смайлы. Буква "л" в предыдущем предложении пропущена намеряно. И вас определённо смутило слово "намеренно". Дело ф том, шо являясь носителем языка, владею я автомагически ультимативным скиллом искажать правила языка для передачи дополнительных смыслов. Могу, умею, практикую.

Произошло недоразумение изза моей невнимательности.

Например я. Заодно и карму поднял, раз уж мимо шёл. Это на случай, если вам действительно интересно.

А в какую категорию попадают визуальные новеллы и всякие симуляторы ходьбы? Формально это тоже игры, но соревновательности в любом виде там либо мало, либо вообще нет. Как на счёт игр, в которых игровые механики уходят на второй план, оставляя место для истории, лора, атмосферы и прочего всего (не самые лучшие представители подобного называют мыльным кинцом). Есть даже некоторое количество хардкорных игр, где сложность важна в первую очередь как часть погружения в мир.

Нет, использование простого int в подобных контекстах это просто признак yolo-кода. Ну или этот код старше, чем большинство из нас. Это если мы говорим о Си и его производных.

В современных языках есть возможность использовать всякие Option, Result. Ну или в языке принято использовать исключения. Чисто технически первое будет означать, что требуется задействовать не один регистр для передачи результата, а два. Вариант с исключениями разумеется будет гораздо дороже. Раскрутка стека и вот это всё.

Если она больше, то там ещё разные инструкции будут (zero-extension vs sign-extension).

Это уже зависит от архитектуры. Варианта два: отдельные операции для дополнения (то, что вы говорите), либо специальные операции для каждой размерности. Первое будет в ARMv6 и новее, второе в amd64. Что-то более экзотичное я не проверял. Ну или даже оба варианта, я все случаи с разными компиляторами и инструкциями не проверял.

Давайте по другому. В языках со слабой типизацией разница между знаковыми и беззнаковыми на самом деле лишь косметическая. Разница только в выборе инструкций для некоторых операций. Пара деталей: https://habr.com/ru/post/696666/comments/#comment_24872228

При этом няшный Си это в некоторой степени ассемблер для PDP-11. Особенно если мы говорим о версиях до стандартизации.

Сложно говорить о строгости этих значений при слабой типизации. UINT_MAX для signed int будет побитово идентичен -1. INT_MAX для unsigned int будет равен половине от UINT_MAX. Проблема в неявном преобразовании между signed int и unsigned int.

Неотрицательные начинаются с нуля. С единицы начинаются позитивные числа. Забудьте всё, чему вас там пытались научить. Натуральными можно считать и те и другие. Вообще Википедия напоминает, что для случаев, когда это важно, вы можете обозначить это:

\mathbb {N} _{0} \mathbb {N} _{1}

Нет никакого "у них" и "у нас", есть только образование низкого качества. У вас.

Максимальное беззнаковое и -1 это одно и тоже. По крайней мере в рамках C/C++ с их слабоватой типизацией.

Отсутствие элемента в массиве ошибкой не является.

Если вы про выход за границы массива, то является ошибкой. В зависимости от конкретного языка программирования и/или флагов компиляции эта ситуация может по разному обрабатываться (возвращение ошибки или бросок исключения) или даже игнорироваться полностью (как в чистом няшном Си в релизной сборке без специальных флагов).

Кстати, судя по обсуждению выше следует уточнить, что вы вообще подразумеваете под массивом. Следует разделять массив как тип (1), массив как данные на стеке (2), ссылку на массив в куче, слайс (обычно ссылка+длинна) и вектор. Обычно под просто массивом подразумевают (1) и (2). И в любом случае речь идёт о данных в оперативной памяти. Метаинформация о размере массива существует на этапе компиляции и не хранится в рантайме. Если мы конечно говорим о компилируемых языках.

В случае если у вас ссылка на массив в куче, то метаданные о размере этого массива хранятся в аллокаторе. В таком случае не очень понятно, зачем вам туда лезть. Очень сильное колдунство.

Если мы говорим о векторе, то вектор может давать доступ к своим метаданным тем или иным образом. Как минимум ссылку на начало массива (или слайс), а также отдельно длину массива и иногда общий объём занятой памяти. Но детали могут меняться в зависимости от реализации и конкретного языка программирования.

Если бы Маск знал, как управлять IT-компанией

Но у него же есть например Tesla, которая ценна в том числе и серьёзными наработками по части создания автопилота.

-1 и UINT_MAX идентичны.

Например для 16-битного числа -1 кодируется как 1111_1111_1111_1111 (0xFFFF).

А с точки зрения машинного кода нет разницы для знаковых и беззнаковых чисел на части основных операций. Сложение, вычитание, умножение и большинство битовых операций выполнены таким образом, что знак не важен. Для сравнения, деления и смещения вправо знак важен и эти операции обычно имеют два варианта.

https://ru.wikipedia.org/wiki/Дополнительный_код

Кроме того использование валидного числового значения для возврата ошибки является рудиментом ранних языков программирования. Во всех более современных ошибка с более абстрактной стороны строго типизированна, а с низкоуровневой стороны хранится как отдельное значение.

Элегантное обращение к внутренним метаданным языка программирования не требуется. Это слишком редкая и слишком специфичная штука.

после такого их вообще хоть кто-то покупать будет

Если я правильно понимаю как это работает, то скорее будут покупать ещё больше.

Но не в РФ. ¯\(°_o)/¯

— Это очень интересно. И будет еще интереснее, когда у нас будет четвертая телевизорная стена. Как ты думаешь, долго нам еще надо копить, чтобы вместо простой стены сделать телевизорную? Это стоит всего две тысячи долларов.

— Треть моего годового заработка.
— Всего две тысячи долларов, — упрямо повторила она. — Не мешало бы хоть изредка и обо мне подумать. Если бы мы поставили четвертую стену, эта комната была уже не только наша. В ней жили бы разные необыкновенные, занятные люди. Можно на чем-нибудь другом сэкономить.

— Мы и так уж на многом экономим, с тех пор как уплатили за третью стену. Если помнишь, ее поставили всего два месяца назад.

Вайфу того пожарника могла выглядеть так

Интересно, могло бы такое придти в голову Рэю в его книге 1953 года.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity