Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Развесёлые диалоги о науке
Литературный форум Фантасты.RU > Для души > Оффтоп
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39
Ну типа Я
Цитата(Серый Манул @ 7.2.2015, 22:33) *
Насколько я знаю компьютер знает лишь одну операцию — суммирование

Строго говоря, он и этого не умеет))
По определению компьютер имеет 1 базовую операцию - 1 + 1 с учетом знака и формированием признака переполнения разряда. На практике же все числа внутри компьютера представлены в вещественной форме. В зависимости от величины или условий это может быть число с плавающей запятой, е в степени и т.п. Целых чисел как таковых в компьютере нет, они получаются путем преобразований при выводе. Поэтому по факту при вычислениях 1 + 1 не равно 2, 2 * 2 не равно 4. Это будет дробь, приближающаяся к правильному значению. Но такая погрешность есть величина постоянная, обусловленная конструкцией процессора, и при вычислениях вводится поправка на нее. Но все равно, при работе с очень малыми числа и очень большими, комп дает изрядную погрешность. Зато универсальность вычислений во всех случаях. Для работы с малыми и большими числами есть специальные алгоритмы и даже специальные аппаратные решения.
Но комп редко тупо складывает единицы. Существуют определенные приемы и алгоритмы, позволяющие ускорить процедуры. Например надо умножить 1 на 1000. Складывать 1000 раз единицу необязательно, можно просто переместить эту единицу из первого разряда в третий, т.е. сделать максимум 3 операции вместо 1000.

Цитата(Серый Манул @ 7.2.2015, 22:33) *
Вот мне и стало интересно, как выглядят эти алгоритмы.

Алгоритм - это способ решения задачи. Дать подзатыльник отличнику и списать у него - это тоже алгоритм)

Цитата(Серый Манул @ 7.2.2015, 22:33) *
Особенно корень, неужели когда компьютер извлекает корень, идет перебор, пока искомое значене не подтвердится? Или там чето очень хитрое используется?

Можно и перебором, но на самом деле есть более быстрые алгоритмы. Есть чисто математические, например разложение в ряд Тейлора, есть специально написанные для компьютеров. Вопрос выбора здесь решается из 2 условий: точности результата и затраченного времени. По времени для компов чаще всего важно сколько повторов (итераций) требуется для получения результата, поскольку все такие алгоритмы вычисляются в цикле. Именно количество повторов цикла определяет основные затраты времени.
Денис Овчаров
Цитата

Ошибка. Открываем классику для студента: У.Столлингс "Структурная организация и архитектура компьютерных систем" 5-е издание. На 420 странице в главе "Характеристики набора машинных команд" уже встречаем мнемонику:сложение, вычитание, умножение, деление..
А уже в главе 9.5 (стр 448) :типы операций в наборе команд процессоров пень2 и повер пи си встречаем, помимо логических и поразрядных - сложение, вычитание, умножение( без учета знаков) и деление с учетом знака.
Ну типа Я
Цитата(Денис Овчаров @ 7.2.2015, 23:28) *
Ошибка. Открываем классику для студента: У.Столлингс "Структурная организация и архитектура компьютерных систем" 5-е издание. На 420 странице в главе "Характеристики набора машинных команд" уже встречаем мнемонику:сложение, вычитание, умножение, деление..
А уже в главе 9.5 (стр 448) :типы операций в наборе команд процессоров пень2 и повер пи си встречаем, помимо логических и поразрядных - сложение, вычитание, умножение( без учета знаков) и деление с учетом знака.

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

ЗЫ Кстати как раз на уровне команд процессора решается большинство алгоритмов вычислений, например умножение, деление и т.д.
Серый Манул
Цитата(Ну типа Я @ 7.2.2015, 23:20) *
Строго говоря, он и этого не умеет))
По определению компьютер имеет 1 базовую операцию - 1 + 1 с учетом знака и формированием признака переполнения разряда. На практике же все числа внутри компьютера представлены в вещественной форме. В зависимости от величины или условий это может быть число с плавающей запятой, е в степени и т.п. Целых чисел как таковых в компьютере нет, они получаются путем преобразований при выводе. Поэтому по факту при вычислениях 1 + 1 не равно 2, 2 * 2 не равно 4. Это будет дробь, приближающаяся к правильному значению. Но такая погрешность есть величина постоянная, обусловленная конструкцией процессора, и при вычислениях вводится поправка на нее. Но все равно, при работе с очень малыми числа и очень большими, комп дает изрядную погрешность. Зато универсальность вычислений во всех случаях. Для работы с малыми и большими числами есть специальные алгоритмы и даже специальные аппаратные решения.
Но комп редко тупо складывает единицы. Существуют определенные приемы и алгоритмы, позволяющие ускорить процедуры. Например надо умножить 1 на 1000. Складывать 1000 раз единицу необязательно, можно просто переместить эту единицу из первого разряда в третий, т.е. сделать максимум 3 операции вместо 1000.


Алгоритм - это способ решения задачи. Дать подзатыльник отличнику и списать у него - это тоже алгоритм)


Можно и перебором, но на самом деле есть более быстрые алгоритмы. Есть чисто математические, например разложение в ряд Тейлора, есть специально написанные для компьютеров. Вопрос выбора здесь решается из 2 условий: точности результата и затраченного времени. По времени для компов чаще всего важно сколько повторов (итераций) требуется для получения результата, поскольку все такие алгоритмы вычисляются в цикле. Именно количество повторов цикла определяет основные затраты времени.

Вот возьмем стандартный калькулятор, как он считает? Через ряд Тейлора дроби? Я про обычный настольный кальк.

Блин, кто это придумал или гений или безумец наркоман, честно я мало чего понял из вашего ответа :-) мне бы попроще обьяснение :-)
al1618
Цитата(Ну типа Я @ 8.2.2015, 0:20) *
Целых чисел как таковых в компьютере нет, они получаются путем преобразований при выводе. Поэтому по факту при вычислениях 1 + 1 не равно 2, 2 * 2 не равно 4.

Ну типа Я
Простите - но вы бредите. Большинство современных компов построены на основе т.н. "Булевой алгебры" (бинарной или двоичной логике по другому)
Это как раз сугубо целочисленная математика в которой только два числа "0" и "1" так что 1+1=01 а 2*2=4 выглядит как 01*01=001
В этой системе счисления любое целое и не цлое число записывается как разложение в ряд по степеням двойки.
т.е. ряд чисел выглядит как
0, 2^0=1, 2^2=4
Видемо отсюда и протекает заблуждение Манула - двоичное число в десятичное действительно переводится сложением степеней двойки
например 5=101=2^0+0^1+2^2=1+0+4=5 но это только преобразование в понятный человеку "код" вычисления впоне себе идут в "своих" операциях
Цитата(Серый Манул @ 8.2.2015, 0:17) *
В первоначальном алгоритме все равно заложено суммирование, само по себе символьное умножение не несет функцию умножения

Наоборот умножение двоичных чисел - простейшая с точки зрения реализации операция.
Обычный "базис" (то есть минимально достаточный) набор операций составляет следующие:
"&" "and" - логическое умножение
"or" - логическое или
"not" - отрицание (вернее инверсия)

С их то помощью и реализуется вся логика(на самом деле бинарная логика возможна даже на одной операции "стрелка пирса", "штрих шеффера", "и-не" "или-не" - но это приводит к проблемам понимания со стороны человека и усложнению схем), хотя есть и другие варианты. К тому же внутри компа для облегчения вычислений могут быть специализированные устройства построенные даже на отличных от "цифры" принципах.
Цитата(Денис Овчаров @ 8.2.2015, 0:28) *
сложение, вычитание, умножение( без учета знаков) и деление с учетом знака.

Язык программирования в данном случае не показатель, как и набор машинных команд.
Дело в том что конструкции языка могут быть реализованы как программно (деление больших чисел например точно требует такой реализации) - встроенными процедурами, так и аппаратно - встроенными в процессор или Со-процессор схемами.
Мы же тут вроде как об элементарной базе говорим. Не?
Денис Овчаров
Цитата
Не путайте команды процессора с работой регистров. Команда процессора это целая программа, только жестко прописанная для конкретного типа процессора и может содержать десятки, сотни и тысячи элементарных аппаратных действий.

Цитата
ЗЫ Кстати как раз на уровне команд процессора решается большинство алгоритмов вычислений, например умножение, деление и т.д.

Вот вы меня сейчас заставил опять лезть в шкаф к книжкам... Вам не стыдно? ))))
Цитата
ЗЫ Кстати как раз на уровне команд процессора решается большинство алгоритмов вычислений, например умножение, деление и т.д.
Да, конечно, вы только что меня раскритиковали по этому поводу ))))
Серый Манул
Al, вы меня не поняли. Как умножают в двоичной системе я знаю. Я не понимаю, как запрограмировали компьютер умножать. Сложение это очевидная операция. А вот умножение, деление, возведение в степень, корень, логарифмы уженет. Я спрашиваю именно о базовом уровне программирования.

Вот хуть тресни, но 1*10=10 машина не сможет воспроизвести, без некого алгоритма или особой формулы.
Ну допустим машина десять раз сложит еденицу, это очевидно. А вот с корнем как?

Ладно хрен с этим компьютером, как считает калькулятор????
BurnedHeart
Цитата(Серый Манул @ 8.2.2015, 0:56) *
Вот возьмем стандартный калькулятор, как он считает? Через ряд Тейлора дроби? Я про обычный настольный кальк.

Блин, кто это придумал или гений или безумец наркоман, честно я мало чего понял из вашего ответа :-) мне бы попроще обьяснение :-)

Узнайте что такой бит,байт, регистр, Булеву логику, И, ИЛИ, Исключаещее ИЛИ. Потому выучите ассемблер - низкоуровневый язык программирования(который наглядно дает представление как компьютер все это делает). Можно простой пиковский ассемблер в тридцать пять команд.
И поймете эту мудрость, как компьютр страшно простыми действиями соединяя их решает такие грандиозные задачи.
Если собрались выучить программирование на высокоуровневом языке: типа С++ или Явы - то как работает комп никогда не поймете. Программировать сможете и можете даже программистом-гуру стать, но как внутри все это работает без ассемблера и работы на уровне железа, не догоните. Это вам и не понадобится. Куча народа работает так и пишут игры, программы получая нехилые бабки и не имея понятия как это происходит на низовом уровне.
Серый Манул
Цитата(BurnedHeart @ 8.2.2015, 0:10) *
Узнайте что такой бит,байт, регистр, Булеву логику, И, ИЛИ, Исключаещее ИЛИ. Потому выучите ассемблер - низкоуровневый язык программирования(который наглядно дает представление как компьютер все это делает). Можно простой пиковский ассемблер в тридцать пять команд.
И поймете эту мудрость, как компьютр страшно простыми действиями соединяя их решает такие грандиозные задачи.
Если собрались выучить программирование на высокоуровневом языке: типа С++ или Явы - то как работает комп никогда не поймете. Программировать сможете и можете даже программистом-гуру стать, но как внутри все это работает без ассемблера и работы на уровне железа, не догоните. Это вам и не понадобится. Куча народа работает так и пишут игры, программы получая нехилые бабки и не имея понятия как это происходит на низовом уровне.

Мне не интересно программирование, меня интересует лишь один вопрос, причем хотелось бы получить конкретный ответ, как компьютер умножает, находит корегь и т.п. Через сложение, подбором?
Денис Овчаров
Цитата
Я не понимаю, как запрограмировали компьютер умножать.

Блин, первоначально алгоритм Бута.
BurnedHeart
Цитата(Серый Манул @ 8.2.2015, 1:09) *
Al, вы меня не поняли. Как умножают в двоичной системе я знаю. Я не понимаю, как запрограмировали компьютер умножать. Сложение это очевидная операция. А вот умножение, деление, возведение в степень, корень, логарифмы уженет. Я спрашиваю именно о базовом уровне программирования.

Вот хуть тресни, но 1*10=10 машина не сможет воспроизвести, без некого алгоритма или особой формулы.
Ну допустим машина десять раз сложит еденицу, это очевидно. А вот с корнем как?


Чуете, как вам высокоуровневые программеры отвечают?)) Они себе создают эту картину. Мозг требует какой-то реальности. На что можно было опираться. А когда не знаешь электроники и базовой булевой алгебры ее заменяют чем-то суррогатным.
Слушайте ал1618. Он понимает, что говорит.))
Ну типа Я
Цитата(Серый Манул @ 7.2.2015, 23:56) *
Вот возьмем стандартный калькулятор, как он считает? Через ряд Тейлора дроби? Я про обычный настольный кальк.

Проще всего - допросить с пристрастием. Причем лучше допросить разработчика, а не калькулятор)

Цитата(Серый Манул @ 7.2.2015, 23:56) *
Блин, кто это придумал или гений или безумец наркоман, честно я мало чего понял из вашего ответа :-) мне бы попроще обьяснение :-)

Ну проще... По сути, в "слегка" упрощенной форме, компьютер состоит из одного сдвигового регистра. На заре копьютеростроения так и было. Сдвиговый регистр - это набор управляемых триггеров. Подавая управляющий сигнал мы может включать или выключать выходы. В сдвиговом регистре управляющий сигнал как бы перемещает сигнал с одного выхода на другой. Например на выходе младшего разряда 1, на остальных выходах 0. Если мы установим (передвинем) эту единицу в следующем, а в младшем обнулим, то это будет равносильно умножению на 10 в двоичной форме. Такое может происходить и в автомате. Т.е. (не знаю как правильно сказать) если к младшему разряду прибавить 1, то он сам "впишет" 1 в следующий разряд, а сам обнулится. Только учитывайте, что примеры для двоичной системы исчисления, где 1 и 2 соответствуют 1 и 10 в десятеричной. Где-то так)
BurnedHeart
Цитата(Серый Манул @ 8.2.2015, 1:14) *
Мне не интересно программирование, меня интересует лишь один вопрос, причем хотелось бы получить конкретный ответ, как компьютер умножает, находит корегь и т.п. Через сложение, подбором?

Умножение через сложение. Либо через сдвиг регистра. Вам об этом сказали. Деление через комплементацию и сложение.
Вы наверное про это и слышали.
По большому счеты вы правы, что сложением делается большинство операций. Но сдвигом тоже. И инверсией. И их сочетанием. Более сложные операции - это уже программно написаные программистами библиотеки. Ряд Тейлора например. Вычисляется приближенно. Объяснить Вам все это наглядно не получится, ибо займет два часа и кучу текста. Не получится у вас прыгнуть через базовые понятия и попасть сразу в падишахи.
Ну типа Я
Цитата(al1618 @ 7.2.2015, 23:59) *
Ну типа Я
Простите - но вы бредите.

Ну что ж, это радует)

Цитата(Денис Овчаров @ 8.2.2015, 0:00) *
Вот вы меня сейчас заставил опять лезть в шкаф к книжкам... Вам не стыдно? ))))

Представьте себе - нет) Просто не надо путать команды и программы с аппаратными действиями.

Цитата(Денис Овчаров @ 8.2.2015, 0:00) *
Да, конечно, вы только что меня раскритиковали по этому поводу ))))

Да как бы нет. Просто исполнение команды процессора это не одно действие, да и может вызвать целую кучу других команд. Поэтому ее нельзя рассматривать как элементарное действие. Вообще процессором можно управлять без команд, просто подавая сигналы на отдельные входы. Есть такой отладочный режим. Не уверен, правда, что серийные процессоры такой режим поддерживают.
Серый Манул
Цитата(BurnedHeart @ 8.2.2015, 0:16) *
Чуете, как вам высокоуровневые программеры отвечают?)) Они себе создают эту картину. Мозг требует какой-то реальности. На что можно было опираться. А когда не знаешь электроники и базовой булевой алгебры ее заменяют чем-то суррогатным.
Слушайте ал1618. Он понимает, что говорит.))

Боюсь представить, что будет дальше... особенно когда наступит технологическая сингулярность, это вообще писец полный настанет laugh.gif
Серый Манул
Цитата(Ну типа Я @ 8.2.2015, 0:16) *
Проще всего - допросить с пристрастием. Причем лучше допросить разработчика, а не калькулятор)


Ну проще... По сути, в "слегка" упрощенной форме, компьютер состоит из одного сдвигового регистра. На заре копьютеростроения так и было. Сдвиговый регистр - это набор управляемых триггеров. Подавая управляющий сигнал мы может включать или выключать выходы. В сдвиговом регистре управляющий сигнал как бы перемещает сигнал с одного выхода на другой. Например на выходе младшего разряда 1, на остальных выходах 0. Если мы установим (передвинем) эту единицу в следующем, а в младшем обнулим, то это будет равносильно умножению на 10 в двоичной форме. Такое может происходить и в автомате. Т.е. (не знаю как правильно сказать) если к младшему разряду прибавить 1, то он сам "впишет" 1 в следующий разряд, а сам обнулится. Только учитывайте, что примеры для двоичной системы исчисления, где 1 и 2 соответствуют 1 и 10 в десятеричной. Где-то так)

А че делать, если умножать на дробь? И опять же корни, корни, корни!!!
Серый Манул
Цитата(BurnedHeart @ 8.2.2015, 0:24) *
Умножение через сложение. Либо через сдвиг регистра. Вам об этом сказали. Деление через комплементацию и сложение.
Вы наверное про это и слышали.
По большому счеты вы правы, что сложением делается большинство операций. Но сдвигом тоже. И инверсией. И их сочетанием. Более сложные операции - это уже программно написаные программистами библиотеки. Ряд Тейлора например. Вычисляется приближенно. Объяснить Вам все это наглядно не получится, ибо займет два часа и кучу текста. Не получится у вас прыгнуть через базовые понятия и попасть сразу в падишахи.

Мне достаточно такого описания на словах. Что берут вот используют такую то формулу, а затем складывают...этого достаточно. То есть корень, логарифмируют и прочее, предварительно прогоняя числа через некоторые ряды, формулы?
Ну типа Я
Цитата(Серый Манул @ 8.2.2015, 0:39) *
А че делать, если умножать на дробь? И опять же корни, корни, корни!!!

Есть куча специальных приемов. Вам нужен спец по проектированию процессоров)
По квадратному, и даже может быть где-то треугольному, корню вот может посмотреть пример, как решаются подобные задачи применительно к компьютерам http://algolist.manual.ru/maths/count_fast/intsqrt.php
Серый Манул
Цитата(Ну типа Я @ 8.2.2015, 0:44) *
Есть куча специальных приемов. Вам нужен спец по проектированию процессоров)
По квадратному, и даже может быть где-то треугольному, корню вот может посмотреть пример, как решаются подобные задачи применительно к компьютерам http://algolist.manual.ru/maths/count_fast/intsqrt.php

Примерно, как я и думал.
Ну типа Я
Цитата(Серый Манул @ 8.2.2015, 0:51) *
Примерно, как я и думал.

А что именно, если не секрет?
al1618
Цитата(Серый Манул @ 8.2.2015, 1:09) *
Вот хуть тресни, но 1*10=10 машина не сможет воспроизвести, без некого алгоритма или особой формулы.
Ну допустим машина десять раз сложит еденицу, это очевидно.

Мне так нет smile.gif
потому как умножить 1 на десять это не десять раз сложить один.
Умножает машина всегда "на два" - с помощью сдвигового регистра.
http://www.youtube.com/watch?v=FPMkE2JPkb8 с 2:40 сек
или тут http://dssp.petrsu.ru/~ivash/ims/t12/TEMA6.HTM

Делит в принципе так же.
Серый Манул
Цитата(al1618 @ 8.2.2015, 2:01) *
Мне так нет smile.gif
потому как умножить 1 на десять это не десять раз сложить один.
Умножает машина всегда "на два" - с помощью сдвигового регистра.
http://www.youtube.com/watch?v=FPMkE2JPkb8 с 2:40 сек
или тут http://dssp.petrsu.ru/~ivash/ims/t12/TEMA6.HTM

Делит в принципе так же.

Хитро блин.

http://www.moluch.ru/archive/78/13628/
Akai
Цитата(Серый Манул @ 7.2.2015, 23:17) *
Как?

По-разному. Да, обычно на базе сложения. Но там кроме него ещё много всякого используется: поразрядный сдвиг и различная логика (не обязательно двоичная). Вообще, схемы аппаратных умножителей и делителей в интернете есть. Ещё, вероятно, вам понадобится учебник по дискретной математике.

Любой алгоритм можно реализовать в железе (только не всегда это оправдано).

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

Цитата(Серый Манул @ 8.2.2015, 0:09) *
А вот умножение, деление, возведение в степень, корень, логарифмы уженет. Я спрашиваю именно о базовом уровне программирования.

Мне кажется, вы смешиваете то, что смешивать не стоит.

Умножение и деление тоже давно очевидные операции. Они ещё неочевидные, может быть, в каких-то нишевых встраиваемых устройствах. Насколько я знаю, ширпотреб уже давно умножает и делит на железе. И это не уровень базового программирования. Это скорее проектирование микропроцессоров. Программирование — это степени, корни и логарифмы. Вот они считаются так, как решил программист, написавший ту или иную библиотеку. Алгоритмов хватает.
Ну типа Я
Цитата(Серый Манул @ 8.2.2015, 0:09) *
Al, вы меня не поняли. Как умножают в двоичной системе я знаю. Я не понимаю, как запрограмировали компьютер умножать. Сложение это очевидная операция. А вот умножение, деление, возведение в степень, корень, логарифмы уженет. Я спрашиваю именно о базовом уровне программирования.

Я вроде въехал, чего требует Манул.)
Это не есть программирование. Это аппаратные (схемные) решения.
Возьмем абстрактный пример не слишком похожий на действительность, но общий принцип будет такой же.
Умножение на 100 на сдвиговом регистре. И чтобы не городить огород умножать как всегда будем 1.
Получив такую команду, процессор выдаст сигнал записи числа, которое надо умножить, в сдвиговый регистр из некоего заранее подготовленного входного буфера. Потом выдаст серию импульсов (в данном случае 2) на вход управления сдвигом. Потом считает состояние выходов сдвигового регистра и поместит эти данные в выходной буфер. Усе, таблица умножения не нужна, Пифагор рыдает.
Серый Манул
Вопрос касаемо филологии (знаю, тут каждый второй филолог), почему говорят "Господи"? Ведь "госпади" - это во множественном числе!? Правильнее было говорить господь? А господи, тогда во множественном числе, пережиток язычество, когда богов много было?
Вагант
Цитата(Серый Манул @ 15.2.2015, 22:10) *
Вопрос касаемо филологии (знаю, тут каждый второй филолог), почему говорят "Господи"? Ведь "госпади" - это во множественном числе!? Правильнее было говорить господь? А господи, тогда во множественном числе, пережиток язычество, когда богов много было?

"Господи" - это так называемый звательный падеж. А в именительном так и будет - "господь".
slepowl
Почтитайте Петцольда, "Код. Тайный язык информатики". расчитано на детей, идет по истории создания машнных кодов, азбуки морзе, телеграфа ,реле, булевой алгебры и микросхем. постепенно выводит к современным компам. очень позновательно и интересно читать. советовал племяннику мелкому - начал лучше понимать как это работает.
Ярослав
Цитата(Алекс Унгерн @ 29.1.2015, 19:14) *
С теорией Фоменко я знаком. Хотелось бы со ссылками на академическую науку.

Гумилёв Лев Николаевич.
Древняя Русь и Великая степь.
Ритмы Евразии.

Куда уж академичней. Как-никак докторскую он на этом защищал.

Конечно я его к теориям насчёт пассионарности отношусь осторожно, но в остальном - у него самая подробная и точная история описана степных народов и взаимодействия с Русью
Ну типа Я
Цитата(slepowl @ 16.2.2015, 8:59) *
Почтитайте Петцольда, "Код. Тайный язык информатики".

Вы там поаккуратнее читайте. А то писателей больше, чем читателей, пишут чего хотят)
Из той книжки
Цитата
...8 битов составляют 1 байт...

Байт вообще величина безразмерная и имеет смысл только в конкретном схемном решении! Это количество битов, считываемых за 1 такт чтения, и определяется конструкцией и схемотехникой компа. Да, большинство современных компьютеров имеют в основе 8-разрядную шину чтения, но говорить что байт это именно 8 битов, мягко говоря, несерьезно.
slepowl
Оо
покажите мне где 1 байт != 8 бит
Это давно уже по умолчанию.
Так и будкм учить: "в байте может быть 8 бит, а может и 9, хотя мне больше нравится 12, но все почему то используют 8. пичаль." Сломать мозг школьнику сходу!
Ну типа Я
Цитата(slepowl @ 16.2.2015, 15:21) *
Оо
покажите мне где 1 байт != 8 бит
Это давно уже по умолчанию.
Так и будкм учить: "в байте может быть 8 бит, а может и 9, хотя мне больше нравится 12, но все почему то используют 8. пичаль." Сломать мозг школьнику сходу!

Ну вы даете! Схемотехника Intel'а полувековой давности уже стала эталоном)
Они остановились именно на 8 разрядной шине потому, что она обеспечивает коды всех возможных команд процессора и являлась на тот момент удачным компромиссом между сложностью+быстродействие и себестоимостью+технологичность комплектующих того времени. Теперь же это больше пережиток, чем необходимость, вызванной необходимостью поддерживать совместимость с ранее выпущенными устройствами.
slepowl
=)
вот давайте мы щас метры на футы переделаем, а км на мили. все-все-все на них переведем. забьем на поддержку линеек и спидометров) вам комфортно будет?
вот и тут также. просто еще одна СИ в информатике.
ну автор книги может и зря не рассказал о том, что раньше были разные, но затем приняли вот так. но опять же - это принято по умолчанию.
al1618
Цитата(slepowl @ 16.2.2015, 16:21) *
покажите мне где 1 байт != 8 бит

За такой ответ "байт=8 бит" студенты со схемотехники выходят с оценкой "не зачет".
Потому как в байте есть девятый бит - бит контроля четности smile.gif А если брать не ОЗУ а скажем дисковый накопитель - там может быть и десятый "синхронизации".
Впрочем это далеко не во всех поколениях техники. Есть самосинронизирующиеся коды, есть помехозащищенные (там и 12 может быть вполне как и применение группового кодирования)

в общем - слушайте Ну типа Я он дело говорит.
slepowl
=)
ну ок. только может быть не 8 бит данных + бит четности(а его может и не быть), а 7 бит+ четность) или 8 бит + четность +стоп-бит. или 1,5 стоп-бит)

но при этом мы говорим, что передается 2-х байтное число, подразумевая 16 бит, или 32768 возможных состояний
Ну типа Я
Цитата(slepowl @ 16.2.2015, 15:44) *
ну автор книги может и зря не рассказал о том, что раньше были разные, но затем приняли вот так. но опять же - это принято по умолчанию.

Да не принято, в том-то и дело. И не могло быть принято. Выпускаются компьютеры и с 16 разрядной шиной данных, и 32. Соответственно байт в них 16 и 32 бита. Только это специализированные компьютеры, а не ширпотреб. Где-то 2000-е годы японцы предприняли попытку создать ширпотребовский комп с 16 разрядной шиной данных. Но программ-то под него нет, и компиляторов тоже нет, и писать никто не собирался. В итоге они впихнули в него эмулятор 8 разрядной системы для совместимости, но в таком режиме он оказался даже медленнее чем уже существовавшие компы.
Когда речь заходит о теории, а не конкретной железяке, лучше придерживаться правильной терминологии, чем изобретать свою.
slepowl
ОК, будем обзывать октет.
только сегодня мало кто на таком низком уровне работает то.
в общем случае программисту пофиг на шину данных, однако при работе, например, с числами он пользуется терминологией "байт", подразумевая 8 бит.
И школьнику это не надо. ему надо задачку решить на возможное число сочетаний 2байтного числа,
а программисту расшифровать блок данных, который он принял в виде 4 байт.
(ну оооочень утрировано если)
И если выбирать из доступно и просто объяснить, используя современные стандарты или загрузить терминологией - лучше выбрать доступно и просто. Захочет - сам потом углубится.
Ну типа Я
Цитата(slepowl @ 16.2.2015, 16:03) *
в общем случае программисту пофиг на шину данных, однако при работе, например, с числами он пользуется терминологией "байт", подразумевая 8 бит.

Это почему это? А как же драйвера писать? Там байт это зачастую биты данных плюс биты состояния/контроля устройства. И получает их программа кучей, а уж потом разбирается что к чему.

Цитата(slepowl @ 16.2.2015, 16:03) *
И школьнику это не надо. ему надо задачку решить на возможное число сочетаний 2байтного числа,

Ну школьнику может и не надо, но все же лучше чтобы он правильно понимал суть вещей, а не их частное использование.
Серый Манул
Надо будет заречься связываться с программистами... Они как математики, только страшнее: у них клавиотура есть!
Ну типа Я
Цитата(Серый Манул @ 16.2.2015, 17:41) *
Они как математики, только страшнее: у них клавиотура есть!

Да ладно) Клавиатура только если углом на ногу свалится, то может быть синяк набьет, а плашмя так вообще ничего не будет)
Вот интересно, чтобы вы сказали, если я стал рассказывать о химических реакциях ну скажем никеля с целлюлозой. Наверное нарисовали схему получения мышьяка и дали бы рекомендации по применению его внутрь)
Серый Манул
Цитата(Ну типа Я @ 16.2.2015, 18:29) *
Да ладно) Клавиатура только если углом на ногу свалится, то может быть синяк набьет, а плашмя так вообще ничего не будет)
Вот интересно, чтобы вы сказали, если я стал рассказывать о химических реакциях ну скажем никеля с целлюлозой. Наверное нарисовали схему получения мышьяка и дали бы рекомендации по применению его внутрь)

Никель и целлюлоза? Хм... лучше вам цианиду дать tongue.gif
Ну типа Я
Цитата(Серый Манул @ 16.2.2015, 19:38) *
Никель и целлюлоза? Хм... лучше вам цианиду дать tongue.gif

Ага, заело!))
А хотите я "научно" разовью теорию о ржавлении никеля, завернутого в бумагу? По глазам вижу - не хотите rolleyes.gif . Ну и ладно, все равно я в химии ни бум-бум)
slepowl
Цитата(Ну типа Я @ 16.2.2015, 17:11) *
Это почему это? А как же драйвера писать?

Ну частный случай, к сожалению, дрова щас пишут единицы.
А вообще мы о разных вещах немного говорим.=)

Цитата(Ну типа Я @ 16.2.2015, 17:11) *
Ну школьнику может и не надо, но все же лучше чтобы он правильно понимал суть вещей, а не их частное использование

И опять же, что в этой книге, кроме байта, не дает понимать суть вещей?)) помойму вполне внятно и подробно для чайников описывает основы.
Ну типа Я
Цитата(slepowl @ 17.2.2015, 8:02) *
Ну частный случай, к сожалению, дрова щас пишут единицы.

Сейчас чуть ли не ежедневно выпускаются новые железяки, а вы говорите единицы)

Цитата(slepowl @ 17.2.2015, 8:02) *
А вообще мы о разных вещах немного говорим.=)
И опять же, что в этой книге, кроме байта, не дает понимать суть вещей?)) помойму вполне внятно и подробно для чайников описывает основы.

Дело не в этом. Правильная терминология залог взаимопонимания. Пример: как чайники могут чего-то понять? Они ж железные, в них воду кипятят! К счастью я знаю и другой смысл этого слова, а если б не знал что тогда?
slepowl
Цитата(Ну типа Я @ 17.2.2015, 11:56) *
Сейчас чуть ли не ежедневно выпускаются новые железяки, а вы говорите единицы)

Которые давно используют проверенные наработанные решения. Что телефоны, что компы\ноуты, что контроллеры. Написал библиотеку один - пользуются многие, не вникая в суть.
К сожалению - это так.
Я использую слово байт в обиходе, подразумевая 8 бит. меня понимают. и будут понимать. Мой знакомый считает пропускную способность канала: байт+ бит четности+ стоп бит = 10
как то так.
http://habrahabr.ru/post/134601/ - очень интересный опрос)))) в комментах не добрались до сути. кто-то не знал, кто-то знал, но давно по умолчанию в мозгах байт=8бит)

А вообще ниочем спорим) Посоветуйте лучше хорошую книгу по информатике для школьника 9 класс. Чтоб было интересно впервую очередь и доходчиво.
Ну типа Я
Цитата(slepowl @ 17.2.2015, 11:44) *
Которые давно используют проверенные наработанные решения. Что телефоны, что компы\ноуты, что контроллеры. Написал библиотеку один - пользуются многие, не вникая в суть.

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

Цитата(slepowl @ 17.2.2015, 11:44) *
Я использую слово байт в обиходе, подразумевая 8 бит. меня понимают. и будут понимать. Мой знакомый считает пропускную способность канала: байт+ бит четности+ стоп бит = 10
как то так.
http://habrahabr.ru/post/134601/ - очень интересный опрос)))) в комментах не добрались до сути. кто-то не знал, кто-то знал, но давно по умолчанию в мозгах байт=8бит)

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

Цитата(slepowl @ 17.2.2015, 11:44) *
Посоветуйте лучше хорошую книгу по информатике для школьника 9 класс. Чтоб было интересно впервую очередь и доходчиво.

Даже и не знаю. Я практик, а как педагог чуть-чуть меньше нуля) Но то, что я нередко слышу от школьников в отношении информатики, как науки, и компьютерах, иногда просто убивает. Например многие полагают, что информатика (как сбор, хранение, обработка информации) невозможна компьютера. Застрелить бы их педагога по информатике!
slepowl
К сожалению у многих до сих пор нет информатики в школе. в 9 классе рассказывают как печатать в word. Причем ЕГЭ сдавать потом по информатике идут многие... Грустно это.
moiser
С информатикой, я смотрю, у вас совсем плохо. Ну да ладно. Оно вам надо?


У меня больше вопрос к Тафано.
Вопрос может показаться наивным и даже глупым, но всё же.
Поскольку пространство (наш вакуум) определяет скорость света, то насколько велика может быть скорость самого пространства?
Серый Манул
Цитата(moiser @ 18.2.2015, 22:42) *
С информатикой, я смотрю, у вас совсем плохо. Ну да ладно. Оно вам надо?


У меня больше вопрос к Тафано.
Вопрос может показаться наивным и даже глупым, но всё же.
Поскольку пространство (наш вакуум) определяет скорость света, то насколько велика может быть скорость самого пространства?

Ну учитывая то, что вселенная расширяется быстрее скорости света, предпологаю, что бесконечной tongue.gif
По сути мой кавитатор физвакуума, это ускорител пространства.
moiser
Цитата(Серый Манул @ 18.2.2015, 22:51) *
Ну учитывая то, что вселенная расширяется быстрее скорости света, предпологаю, что бесконечной tongue.gif
По сути мой кавитатор физвакуума, это ускорител пространства.

Боюсь, тут вы неправы. Пространство нельзя ускорить, ибо нет ничего такого, чтобы это могло сделать. Это основа и если хотите - константа. Почему? Это вопрос другой...
Серый Манул
Цитата(moiser @ 18.2.2015, 23:05) *
Боюсь, тут вы неправы. Пространство нельзя ускорить, ибо нет ничего такого, чтобы это могло сделать. Это основа и если хотите - константа. Почему? Это вопрос другой...

Если она в природе сама по себе расширяется, значит есть способы её контролировать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.
Рейтинг@Mail.ru