Pull to refresh
-2
0
Сергей Волощук @S_WW

User

Send message

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

Я ещё понимаю когда такие вопросы задают обыватели. Но на хабре, вероятно, эти статьи читают инженеры?

Формат чисел с плавающей точкой появился в вычислительной технике. А физики используют экспоненциальную запись чисел.

Я чувствую, вы не понимаете разницы между математикой с одной стороны и физикой и астрономией с другой.

Что такое "вычисления через логарифмы"? Если вы говорите об умножении чисел путём сложения их логарифмов, то там этой "концепции" и близко нет. Плавающая запятая - это хранение числа в виде двух чисел: мантиссы и порядка. Для математики в этом нет необходимости, она работает с абстрактными числами независимо от способа их записи и хранения.

Долго читал ожидая, когда же начнётся что-то интересное или полезное. Увы, так и не дождался.

откуда вообще в математике возникла концепция плавающей запятой?

В математике плавающей запятой никогда не было. Она появилась в вычислительной технике.

Фанатизм тоже ни к чему хорошему не приводит.

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

Если num всегда будет константой, то это операцию лучше делать дефайном, а ещё лучше по месту вставить ((1<<num)-1). Но наличие функции предполагает, что numможетбыть переменной. И тогда приплыли.

Библиотека хороша лишь как гимнастика ума, для практических целей применить её не получится. Хотя бы потому, что вам сразу же понадобится умножать числа с разными порядками, а здесь это не предусмотрено. Во-вторых, при таком умножении только пользователь должен решить какой должен быть порядок у результата. Т.е. чем пожертвовать: целой или дробной частью. А значит оператор для этого не годится, даже friend operator* (...). Нужна отдельная функция, в которую придётся передавать не только операнды, но и порядок результата.

constexpr uint8_t mask(uint8_t num)
{
    return (1 << num) - 1;
}

И вообще, рекурсия - это красиво, но для таких примитивных действий (в т.ч. возведение в степень) лучше её не применять. Не забывайте, что это приводит к многократному вызову функции со всеми вытекающими последствиями.

Первая картинка неправильная. С некоторых пор её стали печатать во всех учебниках физики и вообще везде, где рассказывается. Об электромагнитных волнах. Ошибка в том, что колебания электрического и магнитного полей сдвинуты на 90 градусов. А на картинке они синхронны.

ö к примеру, вместо ё

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

Поскольку в латинском алфавите буква J называется ЖИ, ...

Ошибаетесь, это во французском алфавите она называется ЖИ. И вообще, автор от англоцентризма так и не избавился, хотя по статье видно, что хотел.

Общепринято звук Й обозначать латинской буквой J, а в сербском языке она является равноправной буквой алфавита. Поэтому для буквы Ж придётся придумать другую.

Мы ползали, ползали, да так и не проползали. Надо перепроползать, перевыпроползать.

Когда коту делать нечего, он начинает заниматься сомнительными гигиеническими процедурами.

"Смотри что я придумал: просто нажимаешь на кнопку - и свет включается! И не надо орать «Алиса, включи свет!»"

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

Я думал автор вставил в прошивку файл ttf и использует его для вывода текста на графический дисплей - мне как раз такое надо.

Так вот и я про то же: никто не мешает компилятору иметь ДВА стека

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

1

Information

Rating
4,770-th
Location
Саратов, Саратовская обл., Россия
Registered
Activity