Прошу сильно не пинать ногами, но почему в байте 8 бит? Ну на дисках и в памяти все лежит в двоичном виде и оно понятно — поскольку два четко различимых состояния легко выделить физически. Но вот пачему в байте 8 бит? Почему не 10 — ведь так привычнее — ведь не все же компьютерщики мазохисты
Тут один хороший человек прислал мне на это вот:
"Как Билл Гейтс придумал информацию байтами мерять.
Когда Билл Гейтс занимался отладкой своих первых программ, его очень
раздражало, что он постоянно путался где у него какой бит стоит. И тогда
придумал он объединять их в группы по 8 бит, чтоб меньше ошибаться. И
назвал эти группы байтами. А когда его спросили почему он байты по 8 бит
сделал, а не по 10 — ведь удобнее же десятками считать — он сказал, что
наооборот — когда в байте 8 бит, то удобнее, ведь когда биты в байте
считаешь, пальцы загибать приходится, а так еще два пальца остаются,
чтоб по клавишам нажимать. Вот с той поры и повелось байты по 8 бит
делать."
Но сильно тянет на прикол. Нет, действительно! Почему?
08.06.03 11:19: Перенесено модератором из 'Низкоуровневое программирование' в Философию — ХД
Re: Фундаментальный вопрос :)
От:
Аноним
Дата:
23.10.02 11:38
Оценка:
...
пачему в байте 8 бит? Почему не 10 — ведь так привычнее — ведь
...
Yesli najdesh celochislennij dvoichnij logarifm iz 10 — to mozhet i
peresmotryat standarty, chtob legche schitalos.
Здравствуйте Аноним, Вы писали:
А>... А>пачему в байте 8 бит? Почему не 10 — ведь так привычнее — ведь А>...
А>Yesli najdesh celochislennij dvoichnij logarifm iz 10 — to mozhet i А>peresmotryat standarty, chtob legche schitalos.
А>p.s. sorry za translit
Спасибо за ответ — понятно что преобразования при условии что в байте 8 бит легче между шестнадцатиричной и двоичной системой. Но вот почему ИЗНАЧАЛЬНО в байт заложили 8 бит. Или я просто не понимаю чего-то очень простого и очевидного. При чем тут логарифм? Понятно что 4 бита (тетраду) очень удобно представлять одной цифрой 1111b -> Fh Как альернативу можно смотреть и восьмиричную систему но цифр получается больше и неудобно. А следующая альтернатива 256ричная система — где же столько символов набрать то! Может изначально это было связано с аппаратными ограничениями?
И еще вопрос — а почему биты в байтах считаются в обратном порядке (т.е. справа налево). Только не надо подкаловать что все это арабскими террористами было изначально придумано (хотя похоже конечно)
T>Спасибо за ответ — понятно что преобразования при условии что в байте 8 бит легче между шестнадцатиричной и двоичной системой. Но вот почему ИЗНАЧАЛЬНО в байт заложили 8 бит. Или я просто не понимаю чего-то очень простого и очевидного. При чем тут логарифм? Понятно что 4 бита (тетраду) очень удобно представлять одной цифрой 1111b -> Fh Как альернативу можно смотреть и восьмиричную систему но цифр получается больше и неудобно. А следующая альтернатива 256ричная система — где же столько символов набрать то! Может изначально это было связано с аппаратными ограничениями?
T>И еще вопрос — а почему биты в байтах считаются в обратном порядке (т.е. справа налево). Только не надо подкаловать что все это арабскими террористами было изначально придумано (хотя похоже конечно)
Т.к. в компутерах система счисления двоичная, то по 8 бит считать удобнее.(а не по десять)
Почему не сразу 16 — дык технология не на том уровне была, чтобы делать 16 разрядные системы.
А 8 вобщем-то хоть куда — и диапазон -128 +127 (0..255), т.е. привычная десятиричная цифра 100 умещается,
да и BCD соорудить можно на раз.
А справа налево считаются разряды — и это нормально. Ты же в десятиричной системе так же считаешь...
смотри: 1234
4 — младший разряд или нулевой
...
1 — старший разряд, тут он третий
Здравствуйте Tiger, Вы писали:
T>Уважаемый ALL!
T>Прошу сильно не пинать ногами, но почему в байте 8 бит? Ну на дисках и в памяти все лежит в двоичном виде и оно понятно — поскольку два четко различимых состояния легко выделить физически. Но вот пачему в байте 8 бит? Почему не 10 — ведь так привычнее — ведь не все же компьютерщики мазохисты
Хотя, думаю, тут ещё и аппаратные соображения играют существенную роль. Например, для адресации любого из 8-ми бит достаточно трёх бит (регистров — три микросхемы в далёкие времена), если бы было 10 бит, то надо уже четыре регистра (микросхемы) — эти 4 регистра могут адресовать 16 бит, т.е 6 адресуемых единиц теряется впустую... И не очень понимаю почему 10 — привычнее? Мы же используем кучу систем счисления: часы — по 60 минут, сутки — по 24 часа, неделя — по 7 дней, год — 12 месяцев. А если вспомнить ещё пуды, дюжины, фунты, футы, мили, дюймы, беррели... — и всем этим при определённой тренировке запросто манипулируем
Здравствуйте Tiger, Вы писали:
T>Уважаемый ALL!
T>Прошу сильно не пинать ногами, но почему в байте 8 бит? Ну на дисках и в памяти все лежит в двоичном виде и оно понятно — поскольку два четко различимых состояния легко выделить физически. Но вот пачему в байте 8 бит? Почему не 10 — ведь так привычнее — ведь не все же компьютерщики мазохисты
T>Тут один хороший человек прислал мне на это вот:
T>"Как Билл Гейтс придумал информацию байтами мерять.
T> Когда Билл Гейтс занимался отладкой своих первых программ, его очень T>раздражало, что он постоянно путался где у него какой бит стоит. И тогда T>придумал он объединять их в группы по 8 бит, чтоб меньше ошибаться. И T>назвал эти группы байтами. А когда его спросили почему он байты по 8 бит T>сделал, а не по 10 — ведь удобнее же десятками считать — он сказал, что T>наооборот — когда в байте 8 бит, то удобнее, ведь когда биты в байте T>считаешь, пальцы загибать приходится, а так еще два пальца остаются, T>чтоб по клавишам нажимать. Вот с той поры и повелось байты по 8 бит T>делать."
T>Но сильно тянет на прикол. Нет, действительно! Почему?
Причёмм тут Билл???
По байтам..... почему???
А ты подумай..., чтобы было, если бы система адресации была по битам
А почему 8???
Ну это элементарно
Здравствуйте Edmond,
E>По байтам..... почему??? E>А ты подумай..., чтобы было, если бы система адресации была по битам
Нет, ну понятно что группирвка удобна — НО Почему имеено 8 бит!!!
Ведь и байты далшье группируются в параграфы памяти и в сегменты. Мне все же кажется тут аппаратные причины были (ИМХО)
E>А почему 8??? E>Ну это элементарно
E>Запиши число 8 в двоичной системе и прозреешь
Уважаемый Edmond — я все таки упорствую в своем незнании т.е. к сожалению не прозрел
(старался)
Я понимаю что 8d -> 1000b Ну и что?
А вот 10000b — > 16d !
Что-то ускользает из моего сознания
Ведь деление на байты это условность, сделанная чисто для удобства (ИМХО кончно). Более того вот VVV (см. предыдущий ответ) прислал мне ссылку. А в ссылке вот что:
"Почему в байте 8 бит?
Нам кажется привычным, что в байте ровно 8 бит, но так было не всегда. У старых компьютеров были очень странные по сегодняшним меркам размеры машинных слов и байтов. Обычно они были кратны шести. Восемь же бит в байте появились только с возникновением System/360 от IBM. Это стало стандартом де-факто, и где-то с начала 1970-х большинство компьютеров использует байты, состоящие из 8 бит, и машинные слова, кратные 8.
А почему у System/360 были 8-битные байты? Вероятно, из-за использования BCD-формата представления числа: по 4 бита на каждую цифру (0-9), таким образом один байт мог представлять две цифры. В System/360 были специальные инструкции для обработки данных такого формата, и было бы трудно использовать 6-битные байты для представления BCD, поэтому 8 бит в байте стали наилучшим решением.
Андрей КОНОНОВИЧ,
aloner@softhome.net"
Что бы было если бы например байт выглядел бы так 11111 11111b ? И адресация была бы ширее!
И кстати для пяти разрядов можно было бы 17ричную систему вводить. И тогда было бы 11111 11111b — > EE(17). Чем не удобно?
Хотя вот другие мне тут уже советуют к врачу обратиться
Здравствуйте Tiger, Вы писали:
T>Нет, ну понятно что группирвка удобна — НО Почему имеено 8 бит!!!
T>Я понимаю что 8d -> 1000b Ну и что?
T>Что бы было если бы например байт выглядел бы так 11111 11111b ? И адресация была бы ширее!
8 — это степень двойки (2^3)
Машина работает в двоичной системе, такая у нее природа.
Для машины числа степени 2, то же самое, что для тебя степени 10.
Это "круглые" числа. Это удобнее.
Основные вешки в твоем счете это 10, 100, 1000, ... и т.д.
потому что ты считаешь в десятиричной системе.
Машина считает в двоичной. 2, 4, 8, 16 ... и т.д.
Поэтому 8, а не 6 или 11. Понятно?
Почему 8, а не 4 или 16?
Когда 8 разрядов приняли де-факто, технология была на достаточном уровне,
чтобы обеспечить 8-разрядную архитектуру. А на 16 не тянула.
4 — слишком мало.
8 — рязрядов позволяют легко хранить привычную сотню (-128 .. +127 или 0 .. 256)
К тому же 2 BCD в 8 разрядов хорошо укладываются, что опять дает 0..99 — сотню.
Здравствуйте Tiger, Вы писали:
T>Здравствуйте Edmond,
E>>По байтам..... почему??? E>>А ты подумай..., чтобы было, если бы система адресации была по битам T>Нет, ну понятно что группирвка удобна — НО Почему имеено 8 бит!!!
T>Ведь и байты далшье группируются в параграфы памяти и в сегменты. Мне все же кажется тут аппаратные причины были (ИМХО)
E>>А почему 8??? E>>Ну это элементарно
E>>Запиши число 8 в двоичной системе и прозреешь
T>Уважаемый Edmond — я все таки упорствую в своем незнании т.е. к сожалению не прозрел T>(старался)
T>Я понимаю что 8d -> 1000b Ну и что?
T>А вот 10000b — > 16d !
T>Что-то ускользает из моего сознания
T>Ведь деление на байты это условность, сделанная чисто для удобства (ИМХО кончно). Более того вот VVV (см. предыдущий ответ) прислал мне ссылку. А в ссылке вот что:
Ну нет!!! Это не для удобства....
Это идёт ещё с выч алгебры...
Тут всё очень точно...
Тот ответ.., что 2^xx -- верен..
T>"Почему в байте 8 бит?
T>Нам кажется привычным, что в байте ровно 8 бит, но так было не всегда. У старых компьютеров были очень странные по сегодняшним меркам размеры машинных слов и байтов. Обычно они были кратны шести. Восемь же бит в байте появились только с возникновением System/360 от IBM. Это стало стандартом де-факто, и где-то с начала 1970-х большинство компьютеров использует байты, состоящие из 8 бит, и машинные слова, кратные 8.
То есть почему 8??? Это надо спросить у интел Ну я уверен, причина в архитектуре,.... и она есть
Но кто теперь помнит???
T>А почему у System/360 были 8-битные байты? Вероятно, из-за использования BCD-формата представления числа: по 4 бита на каждую цифру (0-9), таким образом один байт мог представлять две цифры. В System/360 были специальные инструкции для обработки данных такого формата, и было бы трудно использовать 6-битные байты для представления BCD, поэтому 8 бит в байте стали наилучшим решением.
??? Интересно....
T>Андрей КОНОНОВИЧ, T>aloner@softhome.net"
T>Что бы было если бы например байт выглядел бы так 11111 11111b ? И адресация была бы ширее!
Ничего подобного..... Давайте посчитаем проигрыш при формировании адреса УУУЖЖАСС куча алгоритмов проиграна бы была
T>И кстати для пяти разрядов можно было бы 17ричную систему вводить. И тогда было бы 11111 11111b — > EE(17). Чем не удобно?
Неудобно для машины
T>Хотя вот другие мне тут уже советуют к врачу обратиться
Здравствуйте Tiger, Вы писали:
T>Уважаемый ALL!
T>Прошу сильно не пинать ногами, но почему в байте 8 бит? Ну на дисках и в памяти все лежит в двоичном виде и оно понятно — поскольку два четко различимых состояния легко выделить физически. Но вот пачему в байте 8 бит? Почему не 10 — ведь так привычнее — ведь не все же компьютерщики мазохисты
в байте ? в байте не 8 бит. Это зависит от архитектуры.
В свое время были машины с байтом в 13 бит. Просто сейчас очень распространены машины с 8-битным байтом.
DS>в байте ? в байте не 8 бит. Это зависит от архитектуры. DS>В свое время были машины с байтом в 13 бит. Просто сейчас очень распространены машины с 8-битным байтом.
Здравствуйте Tiger, Вы писали:
T>Уважаемый ALL!
T>Прошу сильно не пинать ногами, но почему в байте 8 бит? Ну на дисках и в памяти все лежит в двоичном виде и оно понятно — поскольку два четко различимых состояния легко выделить физически. Но вот пачему в байте 8 бит? Почему не 10 — ведь так привычнее — ведь не все же компьютерщики мазохисты
Н-да, прикольное получилось обсуждение. Из приведенных аргументов, мне наиболее логичным видится, что основание системы счисления — степень 2. Не 4 т.к. слишком мелкие байты, не 16 т.к. аппаратные возможности не позволяли.
Хотя сам я думал, что так макимально эффективно хранить ASCII символы: большие + маленькие буквы, цифры, спец символы, некоторое минимальное количество украшательных символов — как раз 256...
А вообще мне кажется, что автор всех разводит , а если нет, то просто никогда не занимался разработкой или проектированием схем (железа), а то бы знал, что добавка 1 бита частенько усложняет систему в 2 и более раза
Здравствуйте AssAsin, Вы писали:
AA>Здравствуйте Dmitry Sustretov, Вы писали:
DS>>в байте ? в байте не 8 бит. Это зависит от архитектуры.
AA>Если я не ошибаюсь, то в IBM/360 байты были 9-битными. Но 9-й бит использовался для контроля четности и программно был не виден.
Может и не ошибаешся, однако в современных ПК тоже 9 бит, и 9-й бит тоже отвечает за четность. Однако человек имел ввиду, количество бит под данные.
Здравствуйте AssAsin, Вы писали:
AA>Здравствуйте Dmitry Sustretov, Вы писали:
DS>>в байте ? в байте не 8 бит. Это зависит от архитектуры.
AA>Если я не ошибаюсь, то в IBM/360 байты были 9-битными. Но 9-й бит использовался для контроля четности и программно был не виден.
Контроля НЕ четности. Сумма бит = 1 должна была быть нечетной.
Здравствуйте UgN, Вы писали:
UgN>Здравствуйте SVV, Вы писали:
SVV>>Может и не ошибаешся, однако в современных ПК тоже 9 бит, и 9-й бит тоже отвечает за четность.
UgN> UgN>Э-э-э... А можно поподробнее про 9 бит в современных ПК?
Подробнее об этом см. в описании Asm команды jp metka UgN>Это чего, в процессоре еще и контроль четности рюхается?
Это не в процессоре. Слышали когда-нибудь про одно из отличий i440BX от i440ZX? Так это из той серии. Контроль четности реализует чипсет, точнее его контроллер памяти. На ВХ можно поставить память с паритетом и без него.
Здравствуйте UgN, Вы писали:
UgN>Здравствуйте SVV, Вы писали:
SVV>>Может и не ошибаешся, однако в современных ПК тоже 9 бит, и 9-й бит тоже отвечает за четность.
UgN> UgN>Э-э-э... А можно поподробнее про 9 бит в современных ПК? UgN>Это чего, в процессоре еще и контроль четности рюхается?