2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 
 Эффективность байта
Сообщение01.08.2013, 16:31 
Википедия утверждает, что байт - единица хранения и обработки информации. Так как байт состоит из восьми битов, то байт может принимать $256$ различных значений. Это известная таблица кодировок ASCII. Некоторое сообщение можно представить, как конечная последовательность таких символов. Следовательно, это сообщение можно представить числом в системе счисления с основание $256$. Но математически доказали, что оптимальное основание должно быть $3$.
Прошу объяснить, почему так неэффективно кодируется информация.
Или подскажите в каком месте мои рассуждения ошибочны...

 
 
 
 Re: Эффективность байта
Сообщение01.08.2013, 16:40 
Аватара пользователя
Побережный Александр в сообщении #751069 писал(а):
байт - единица хранения и обработки информации

Для "машинного языка". Количество бит в байте зависит от машины...

 
 
 
 Re: Эффективность байта
Сообщение01.08.2013, 16:43 
Аватара пользователя
Для начала напишите, в каком именно смысле основание $3$ является оптимальным, а потом будем думать, какое отношение эта оптимальность может иметь к кодированию сообщений.

 
 
 
 Re: Эффективность байта
Сообщение01.08.2013, 16:53 
Аватара пользователя
Е-ичная - the best! :idea:

 
 
 
 Re: Эффективность байта
Сообщение01.08.2013, 18:01 
Аватара пользователя
Сетунь ещё себя покажет! :lol:

 
 
 
 Re: Эффективность байта
Сообщение01.08.2013, 18:36 
Побережный Александр в сообщении #751069 писал(а):
Это известная таблица кодировок ASCII.

В ней только 128 символов, с кодами от 0 до 127. Коды 128–255 не определены.

Побережный Александр в сообщении #751069 писал(а):
Прошу объяснить, почему так неэффективно кодируется информация.

Ну что значит неэффективно? Это очень удобное представление для обработки и отображения. Если вас волнует занимаемое место при хранении — сжимайте.

 
 
 
 Re: Эффективность байта
Сообщение01.08.2013, 18:46 
Аватара пользователя
Кстати, байт и октет не синонимы, хотя найти машину с не 8-битным байтом сейчас трудно.

(Оффтоп)

Экзамен по информатике. Барышня явно тонет, и явно достойна сочувствия. Преподаватель задаёт вопрос попроще, чтобы поставить законную тройку:
- Сколько бит в байте?
Барышня растерянно оглядывается, сзади тихий шепоток, барышня прислушивается и восклицает:
- Восемь!
Преподаватель уже тянет руку ставить "3", но барышня вдруг продолжает:
- А каждый четвёртый високосный, и в нём девять!

 
 
 
 Re: Эффективность байта
Сообщение01.08.2013, 22:35 
Побережный Александр в сообщении #751069 писал(а):
Следовательно, это сообщение можно представить числом в системе счисления с основание
любым. Непонятно, как это связано с байтом, количеством бит в нем и волшебным числом 3.

 
 
 
 Re: Эффективность байта
Сообщение01.08.2013, 23:01 
Аватара пользователя
И, кстати, в "восьмибитном" байте может быть на самом деле 9 бит. Девятый бит для программ невидим, и содержит 1 или 0 в зависимости от чётности-нечётности числа единичных разрядов в восьми информационных битах.
Я читал, что раньше это использовалось для повышения надёжности (контроль сбоев). Как сейчас обстоит дело, не знаю.

 
 
 
 Re: Эффективность байта
Сообщение02.08.2013, 00:04 
Someone в сообщении #751181 писал(а):
Как сейчас обстоит дело, не знаю.

Так же — ECC-схемы на модулях памяти никуда не девались. Но это деталь аппаратной реализации, если честно, и к разрядности байта отношения не имеет. Потому что обычно к шестидесяти четырем битам добавляют восемь дополнительных бит, т.е. используют $[72,64,4]_2$-ый код, получаемый из $[127,120,3]_2$ кода Хэмминга укорочением на $56$ бит и добавлением бита проверки четности — это "SECDED" код, исправляющий одну и обнаруживающий две ошибки.

 
 
 
 Re: Эффективность байта
Сообщение02.08.2013, 01:17 
Ну вот каждый раз, когда в Интернете начинают обсуждать что-то про байты, обязательно появляются виртуальные эрудиты, которым дико неймётся в тысячный раз вставить свои пять копеек о том, что в байте может быть не восемь бит. Они бы ещё вспомнили, что слово «самолёт» может означать самоходный паром или ручной ткацкий станок, а слово «пароход» — железнодорожный локомотив.

Потом, естественно, все начинают блистать познаниями в том, как надо по-правильному употреблять приставки «кило-» и «мега-» в применении к единицам информации, а также с прописной или строчной буквы их сокращать… И заканчивается всё тем, писать ли «на Украину» или «в Украину». А то и вообще до Гитлера доходит…

По сути дела: уважаемый зачинатель обсуждения, а откуда у вас информация, что «математически доказали, что оптимальное основание должно быть 3»? Приведёте ссылку на доказательство, например?

 
 
 
 Re: Эффективность байта
Сообщение02.08.2013, 01:19 
Получена тройка, если интересно, примерно таким рассуждением: пусть у нас есть $n$ карточек. Возьмём основание системы счисления $x$, напишем на каждой карточке цифру. Получим $\frac nx$ комплектов, которыми можно выложить $x^{\frac nx}$ различных чисел. Максимум достигается при $x=e$, среди целых — $3$. Однако, для основания $2$ можно применить грязный хак: на одной стороне карточки пишем 0, на другой — 1. Тем самым получаем больше комплектов. Будь карточки трёхсторонними, глядишь, многое сложилось бы иначе.

-- 02.08.2013, 09:23 --

И, кстати: всё это имеет достаточно мало отношения к восьмибитности байта. Минимальные адресуемые ячейки каких только размеров не имели...

 
 
 
 Re: Эффективность байта
Сообщение02.08.2013, 02:16 
Аватара пользователя
Память для некоторых графических процессоров, оптимизированных для работы с 3D графикой, частенько имеет "расширенный" байт - энное колличество бит (разное в разных процессорах) отведено под значения Z-буффера.

(Оффтоп)

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

 
 
 
 Re: Эффективность байта
Сообщение02.08.2013, 10:05 
Правильный ли я вывод сделал, что кодировка ASCII создана для взаимодействия человека и машины. То есть удобство использования в ущерб эффективности. В языках машинного уровня и коды другие...

 
 
 
 Re: Эффективность байта
Сообщение02.08.2013, 11:15 
Аватара пользователя
Someone

В аппаратном представлении может быть и 10. Хотя чаще контрольные биты относятся не к байту, а к группе (как уже указывали - может быть и 8 бит на 64 бита информационных), хотя вот на лентопротяжках было 9 дорожек (8 на байт, 9 контроль чётности;

(Оффтоп)

на этом я сильно накололся лет 35 тому - мне, как особо наглому студенту, предложили написать перекодировку лент с "Минск-32" в ЕС ЭВМ - само-то перекодирование я сделал, но там контроль был "до чётного" в одном и "до нечётного" в другом, и побороть восприятие всех байтов, как огромной бесперывной ошибки я не смог
)
Но это именно "железо", а не программное представление.

la1488
Я верю, что Вам никогда не приходилось работать на машинах с не-байтовой организацией. Не соблаговолите ли указать, чего Вы ещё не знаете, дабы не порушить невзначай Вашей интеллектуальной невинности?

Побережный Александр
Восьмибитность байта не имеет никакого отношения к эффективности представления информации. Это всего лишь условное соглашение, компромисс между "числовыми" требованиями, адресуемым 36-48 битным "словом" (10-20 десятичных разрядов в плавающем представлении) и "буквенными", требовавшими не менее 7 бит для кодирования 26 строчных, 26 прописных букв, 10 цифр и некоторого числа знаком препинания (а для передачи в линию - ещё и служебных посылок телеграфии), что даёт более 64 знаков, так что 6 мало (хотя 6-битный TRANSCODE имел некоторое употребление, и даже 5-битный использовался, но требовал "переключения регистров" буквенный/цифровой или РУС/ЛАТ/ЦИФ), что дало 7-битный ASCII, а затем и 8-битный "расширенный ASCII"). В IBM/360 выбрали компромисс - 32 бита для чисел (что мало) и 8 бит для символов (что для США много, а для прочего мира, с кириллицей, греческим, ивритом, урду и пр. мало). Так получили 8-битный "байт" (то есть октет, байт это всё же "минимальная непосредственно адресуемая область памяти", хотя 6-битные и 9-битные байты почти вымерли).
Но к эффективности имеет отношение не условная группировка "в шеренгах по восемь", а представление минимально информационной единицы. Если она принимает $n$ состояний, то для представления числа $N$ надо $\log_n N$ разрядов и $n\log_n N=\frac {n \ln N}{\ln n}$ состояний, суммируя по всем элементам. Для заданного $N$ минимум достигается при $n=e=2.718281828459...$, что, как дробное число, нереализуемо (хотя идея применить это в "разрядно-аналоговых ЭВМ" была высказана, но лишь в самом общем виде, без конкретики), однако более аккуратное рассмотрение зависимости показывает, что для нахождения целочисленного оптимума достаточно рассмотреть ближайшие значения 2 и 3, благо функция одноэкстремальна. Для $n=2$ коэффициент при логарифме $N$ равен $2.885$, для $n=3$ он $2.731$ вместо "оптимальнейшего" при $n=e$, равного $2.7183$, то есть троичная система на 5% лучше двоичной.
Сам по себе такой выигрыш не слишком существенен, однако, если бы триггер на три состояния состоял бы из 3 транзисторов, это могло быть востребовано. В реальности же трёхсоставной элемент был реализован на магнитном усилителе, миниатюризовать который не удалось. Так интересная идея была убита скучной серой технологией. К счастью, потеря 5% не столь фатальна.

 
 
 [ Сообщений: 30 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group