csharp.janari
поиграться так скажем
Иван
Если интересно разобраться как строился компьютер
Иван
Не аналоговый
Иван
А на цифровых элементах
Иван
То очень классная книга есть, Основы цифровой электроники
csharp.janari
может пдфка есть у тебя ?)
Иван
Токхейм Р. Основы цифровой электроники
Иван
Вот так
Иван
?
Нету, у меня физическая книга
Иван
Ну и потом курить мануал к микропроцессору 8086 и кодить на ассемблере )
Иван
И будешь седой как я в 20 лет
csharp.janari
а я то думаю че я начинаю седеть то, может не ту дорогу я выбрал все таки🤔
Шурок
@aovzerk Буду Рад Если Будешь Старатьс Передать мысль В 1 сообщении. Ты в обществе на 7к людей Плодить сообщения По 1 предложению- не круто
Иван
Мне кажется если база программирования даётся на ассемблере то это даёт сильный буст в дальнейшем
Шурок
Смотри, таймер может быть индивидуальным ;)
Иван
А так да, согласен с тобой, не буду по два слова писать в предложении
csharp.janari
Мне кажется если база программирования даётся на ассемблере то это даёт сильный буст в дальнейшем
согласен с тобой умеешь писать на ассемблере/c/c++ то в основном ты уже все понимаешь как на низком уровне устроено, и легче подниматься по уровню намного
Veronica
Всем здравствуйте! С наступившим 2023 годом) А где вы учили верстку? Можите посоветовать какие-то курсы/видео уроки?🙏
Gravity
Всем привет
Gravity
кто знает как ПК сохраняет и работает с нецелыми числами?
Иван
у тебя всегда есть остаток от деления, например если разделишь 12 на 10 то в 1 регистр попадает 1 во второй 2
Иван
но есть еще математический сопроцессор, где обычно и выполняются все операции с повышеной точностью ибо он умеет работать с плавающей точкой быстрей и точней
Иван
3 = 11b 0,14 = 0,00100011b То есть число 3,14 в двоичном виде равно: 3,14 = 11,00100011b Теперь преобразуем это число в нормализованную экспоненциальную форму: 11,00100011b = 1,100100011b * 2^1 Теперь рассчитаем смещённый порядок (предположим, что для хранения порядка у нас используется 5 бит). Тогда исходные данные: ИП = 1 (у нас 2 в степени 1) k = 5 СП = ИП + 2k-1 – 1 = 1 + 25-1 – 1 = 1 + 16 – 1 = 16 Записываем знак числа, порядок и мантиссу в соответствующие разряды: Знак Порядок Мантисса 0 10000 0010001100
Gravity
А если допустим я ввожу на консоль какой нибудь число
Gravity
как можно определить целое оно или вещественное?
Иван
Если типизированный язык то посмотреть к какому типу принадлежит, если принадлежит к типам double или float то вещественное
Gravity
например: double a=12; но тогда же у нас вроде число как бы целое
Andrii
как можно определить целое оно или вещественное?
А для чего? В принципе, если брать JS, там по стандарту все числа вещественные. Или тебя интересует, что у него нет дробной части?
Иван
Нет, оно вещественное ибо double не спросила занимает места в памяти больше чем int
Andrii
например: double a=12; но тогда же у нас вроде число как бы целое
Или вещественное, но с нулевой дробной частью. Но это вопрос скользкий. А это a = 1e+3? а это a = 1e+50?
Иван
Посмотреть на дробную часть
Andrii
просто друг открыл тему с вопросом -а как определить число на вещественность?
Понимаешь, у каждого действия должна быть цель. Потому что в данном случае однозначного ответа нет, и в зависимости от цели, которая достигается, ответы будут разными
Andrii
В данном случае без ЯП и решаемой задачи вопрос не имеет смысла. Да, такое бывает...
Gravity
С++
Сидредин
как можно определить целое оно или вещественное?
Если есть точка, то значит, что вещественное число
Сидредин
Иван
в стандартных библиотеках есть modf
Andrii
С++
В C++ тип известен на стадии компиляции, потому какой тип задан в исходном тексте программы, тот и будет
Andrii
например: double a=12; но тогда же у нас вроде число как бы целое
Ну... а если попробовать так std::cout << *reinterpret_cast<int *>(&a); То как бы и не 12 будет выведено.
Иван
в стандартных библиотеках есть modf
эта функция отделяет дробную часть от целой, просто сравни дробную часть с нулем, а если интересно понять как она это делает глянь исходники
Andrii
эта функция отделяет дробную часть от целой, просто сравни дробную часть с нулем, а если интересно понять как она это делает глянь исходники
И что ты получишь для числа, например, 1e+100? Дробна часть равна нулю, но это не целое число, хотя бы потому, что если к нему прибавить единицу, то получится то же самое число.
Gravity
Я шяс начал смотреть архитектуру пк
Gravity
думаю поможет
Andrii
пихаешь в функцию число 12.667 получаешь 12 и 667. Пихнешь 57 получишь 57 и 0
Вот ты пихаешь в функцию 1e+100 и получаешь 1e+100 и 0. Но 1e+100 как-бы не целое 😊
Иван
Вот ты пихаешь в функцию 1e+100 и получаешь 1e+100 и 0. Но 1e+100 как-бы не целое 😊
бро, для начала тебе компилятор это распарсить и выкинет привычное число представленое в двоичке
Иван
Andrii
прочитай доку майков либо сделай тестовый код
Я всё это знаю, я просто говорю, где ты ошибаешься. double a = 1e+100; И тут a ведёт себя не так, как целое, хотя бы потому, что a + 1 == a.
csharp.janari
Я имел в виду, что шарп я для себя буду изучать только для гейм дева.
то есть ты решил во все отрасли залететь сразу ?
Andrii
нет, оно себя не ведет как целое ибо оно уже изначально вещественное
Ну... если целое число помещается в мантиссу, то в общем-то оно ведёт себя почти как целое. Поэтому, если брать JS, MATLAB, то там часто ты де-факто работаешь с вещественными числами, но это достаточно прозрачно, ты используешь их при индексации элементов и не наступаешь на ошибки округления. Для double это примерно 50 бит.
csharp.janari
у нас диалог про C/C++ идет как бы
да и вообще во всех яп со строгой типизацией так и работает
Иван
если да - то это уже изначально вещественное число
Andrii
+ что ты имеешь под E константу основание натурального логарифма?
Какая Е-константа? Просто экспоненциальная запись числа
Иван
только она наоборот пишется число + exp
Andrii
если да - то это уже изначально вещественное число
В Си/Cи++ у нас тип прописан в исходом тексте, поэтому непонятно вообще зачем нужны какие-то проверки на вещественность.
Иван
100 + 1e у тебя вещественное число 101,0, имено ,0 делает его вещественным и послей запятой и нескольких нулей могут быть числа (мусор)
Andrii
А если ты предлагаешь брать остаток от деления на единицу, то надо учитывать ещё и диапазон
Matukevich
то есть ты решил во все отрасли залететь сразу ?
Нет. Я выбрал для себя 4 языка, которые интересны. И хочу выбрать один из них. Как я читал и мне советовали, лёгкий в изучении Python...
Иван
В Си/Cи++ у нас тип прописан в исходом тексте, поэтому непонятно вообще зачем нужны какие-то проверки на вещественность.
ты ассемблерными вставками можешь дел наделать ибо возвращаясь к моим начальным сообщениям компу по барабану какие типы для него все число
Иван
Не может там быть мусора. Ошибке округления там негде взяться
ну тут уже в зависимости от того какое исходное число взять, если при компиляции записать или интерпритации как константу то все ок будет
Иван
тебе просто компилятор нулями зафикачит область эту на харде и при выгрузке в озу так же все нули перенесутся
Иван
а с интерпретаторами +- так же, но могу ошибаться
Andrii
тебе просто компилятор нулями зафикачит область эту на харде и при выгрузке в озу так же все нули перенесутся
Где зафигачит, куда зафигачит? Число 100 представимо в двоичной арифметике точно. Число 1 представимо в двоичной арифметике точно. Значит их сумма тоже будет точной.
Иван
Ну, так в чем проблема ?
Иван
Если ты говоришь что 101 double то оно вещественное, если в js то оно офк вещественное
Andrii
Понятно, что если ты попробуешь сделать float a = 1.0f / 3.0f; и float b = a + a + a;, то ты можешь не получить единицу в силу того, что число `1/3`представляется в виде бесконечной двоичной дроби.
Andrii
не знаю, самый легкий язык - возможно, после него трудно что то учить еще? Да.
Понимаешь, лёгкость понятие относительное и содержит много аспектов. Как по мне Си лёгкий язык, потому что прост как двери. И в принципе там особо нечего учить: указатели, функции, переменные, отладка, всё. Но писать на Си без достаточно сложно, потому что библиотек мало, надо много делать своими руками, много ошибок и т. п. Python уже достаточно большой язык со множеством концепций. Но писать на нём проще, потому что есть много всего готового.
csharp.janari
поэтому я и говорю, в пайтоне много готового, поэтому труднее переходить на другой яп, я не говорю что это не возможно учить что то еще после него, но это труднее чем с других яп