В десктопных приложениях никто такие библиотеки в здравом уме применять не будет, там используют double не задумываясь. Единственное применение подобных библиотек - это микроконтроллеры, но там заводить по 256 бит на каждую переменную - это непозволительная расточительность.
Если num всегда будет константой, то это операцию лучше делать дефайном, а ещё лучше по месту вставить ((1<<num)-1). Но наличие функции предполагает, что numможетбыть переменной. И тогда приплыли.
Библиотека хороша лишь как гимнастика ума, для практических целей применить её не получится. Хотя бы потому, что вам сразу же понадобится умножать числа с разными порядками, а здесь это не предусмотрено. Во-вторых, при таком умножении только пользователь должен решить какой должен быть порядок у результата. Т.е. чем пожертвовать: целой или дробной частью. А значит оператор для этого не годится, даже friend operator* (...). Нужна отдельная функция, в которую придётся передавать не только операнды, но и порядок результата.
И вообще, рекурсия - это красиво, но для таких примитивных действий (в т.ч. возведение в степень) лучше её не применять. Не забывайте, что это приводит к многократному вызову функции со всеми вытекающими последствиями.
Первая картинка неправильная. С некоторых пор её стали печатать во всех учебниках физики и вообще везде, где рассказывается. Об электромагнитных волнах. Ошибка в том, что колебания электрического и магнитного полей сдвинуты на 90 градусов. А на картинке они синхронны.
Меня это тоже всегда удивляло, пока один лингвист не объяснил, что это из-а чередования гласных. Во многих словах, содержащих ё, она превращается в е при изменении слова: жёлтый — желтеть щёголь — щеголять чёрт — черти ёж — ежи шёпот — шептать
Поскольку в латинском алфавите буква J называется ЖИ, ...
Ошибаетесь, это во французском алфавите она называется ЖИ. И вообще, автор от англоцентризма так и не избавился, хотя по статье видно, что хотел.
Общепринято звук Й обозначать латинской буквой J, а в сербском языке она является равноправной буквой алфавита. Поэтому для буквы Ж придётся придумать другую.
Так вот и я про то же: никто не мешает компилятору иметь ДВА стека
Как раз с двумя стеками проблем больше. Сейчас компилятор знает по какому адресу находятся переменные, а по какому - адреса возврата и умеет их прекрасно отслеживать, никаких проблем с этим не возникает. Проблема может возникнуть если не хватит стека - его размер знает линкер, а при компиляции невозможно узнать требуемый размер. Но два стека не решат её. А наоборот, усугубят - ведь переполнится может и тот, и другой.
К сожалению у большинства процессоров память одна и два твоих стека всё равно будут в одной памяти, а значит никто не помешает одному стеку изуродовать другой. Да и проблема эта какая-то надуманная: со стеком работает не программист, а компилятор, а он прекрасно помнит где у него переменные, а где адрес возврата.
Странно, кто-то не согласен с этим очевидным утверждением. Скажу больше: писать if (x == true) недопустимо! Потому что x может оказаться не bool, а у неё истинное значение может быть любым кроме 0.
Причина ошибки в коде на картинке заключается в том, что булевские переменные не требуется сравнивать. Они же булевские! У них даже название сделано таким чтобы можно было написать if (IsCrasyMurderingRobot)
Вы наверное плохо понимаете американскую политику, раз рассуждаете так примитивно. Демократы в США - это леваки, они считают, что нужно обдирать капиталистов и за счёт них кормит убогих: негров, бедных и всех кто не хочет работать. А республиканцы считают, что каждый должен зарабатывать сам.
В математике плавающей запятой никогда не было. Она появилась в вычислительной технике.
Фанатизм тоже ни к чему хорошему не приводит.
В десктопных приложениях никто такие библиотеки в здравом уме применять не будет, там используют double не задумываясь. Единственное применение подобных библиотек - это микроконтроллеры, но там заводить по 256 бит на каждую переменную - это непозволительная расточительность.
Если num всегда будет константой, то это операцию лучше делать дефайном, а ещё лучше по месту вставить
((1<<num)-1). Но наличие функции предполагает, что numможетбыть переменной. И тогда приплыли.Библиотека хороша лишь как гимнастика ума, для практических целей применить её не получится. Хотя бы потому, что вам сразу же понадобится умножать числа с разными порядками, а здесь это не предусмотрено. Во-вторых, при таком умножении только пользователь должен решить какой должен быть порядок у результата. Т.е. чем пожертвовать: целой или дробной частью. А значит оператор для этого не годится, даже friend operator* (...). Нужна отдельная функция, в которую придётся передавать не только операнды, но и порядок результата.
И вообще, рекурсия - это красиво, но для таких примитивных действий (в т.ч. возведение в степень) лучше её не применять. Не забывайте, что это приводит к многократному вызову функции со всеми вытекающими последствиями.
Первая картинка неправильная. С некоторых пор её стали печатать во всех учебниках физики и вообще везде, где рассказывается. Об электромагнитных волнах. Ошибка в том, что колебания электрического и магнитного полей сдвинуты на 90 градусов. А на картинке они синхронны.
Меня это тоже всегда удивляло, пока один лингвист не объяснил, что это из-а чередования гласных. Во многих словах, содержащих ё, она превращается в е при изменении слова:
жёлтый — желтеть
щёголь — щеголять
чёрт — черти
ёж — ежи
шёпот — шептать
Ошибаетесь, это во французском алфавите она называется ЖИ. И вообще, автор от англоцентризма так и не избавился, хотя по статье видно, что хотел.
Общепринято звук Й обозначать латинской буквой J, а в сербском языке она является равноправной буквой алфавита. Поэтому для буквы Ж придётся придумать другую.
Мы ползали, ползали, да так и не проползали. Надо перепроползать, перевыпроползать.
Когда коту делать нечего, он начинает заниматься сомнительными гигиеническими процедурами.
"Смотри что я придумал: просто нажимаешь на кнопку - и свет включается! И не надо орать «Алиса, включи свет!»"
Да уж, сейчас никому в голову не приходит делать устройство без микроконтроллера, а когда кто-то делает, то это выглядит как экзотика.
Я думал автор вставил в прошивку файл ttf и использует его для вывода текста на графический дисплей - мне как раз такое надо.
Как раз с двумя стеками проблем больше. Сейчас компилятор знает по какому адресу находятся переменные, а по какому - адреса возврата и умеет их прекрасно отслеживать, никаких проблем с этим не возникает. Проблема может возникнуть если не хватит стека - его размер знает линкер, а при компиляции невозможно узнать требуемый размер. Но два стека не решат её. А наоборот, усугубят - ведь переполнится может и тот, и другой.
К сожалению у большинства процессоров память одна и два твоих стека всё равно будут в одной памяти, а значит никто не помешает одному стеку изуродовать другой. Да и проблема эта какая-то надуманная: со стеком работает не программист, а компилятор, а он прекрасно помнит где у него переменные, а где адрес возврата.
Странно, кто-то не согласен с этим очевидным утверждением. Скажу больше: писать if (x == true) недопустимо! Потому что x может оказаться не bool, а у неё истинное значение может быть любым кроме 0.
Я видел много проблем при использовании автомобилей, включая летальные. Но это не причина чтобы не пользоваться автомобилями.
Причина ошибки в коде на картинке заключается в том, что булевские переменные не требуется сравнивать. Они же булевские! У них даже название сделано таким чтобы можно было написать if (IsCrasyMurderingRobot)
Вы наверное плохо понимаете американскую политику, раз рассуждаете так примитивно. Демократы в США - это леваки, они считают, что нужно обдирать капиталистов и за счёт них кормит убогих: негров, бедных и всех кто не хочет работать. А республиканцы считают, что каждый должен зарабатывать сам.
Шпак - украинское слово, в переводе означает скворец