![]() |
|
![]() ![]() ![]() |
|
Dexter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1562 Регистрация: 2.7.2002 Где: Москва, Бирюлево Репутация: нет Всего: 4 |
(Вопрос может показаться очень тупым и примитивным)
Я не очень много знаю по этому вопрсу так что исправьте если я че напортачил. Так вот: я так понимаю, что любой символ кодируется восемью нулями и единицами (всего символов 256), и вся "матрица" ANSI представляет собой (как бы) массив из 256 элементов. Каждый элемент - символ. Так вот (я че-то увлекся) почему при создании компьютерных технологий (или как там это называется) закодировали каждый симво именно 8 нулями и единицами, ведь если их было бы больше то и символов могло быть больше. (вроде все). Еще раз повторяю не судите строго, я в этом хреново разбираюсь ![]() ![]() ![]() И если можно кинте адресок где можно про это почитать ![]() -------------------- The only thing you really know about me is... ...that's all you'll ever know |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Вся матрица это массив из 8 битов, количество комбинаций 8 элементов, каждый из которых может иметь 2 значения (0, 1) и даёт 256 возможных вариантов:
0000 0000 - 0 0000 0001 - 1 0000 0010 - 2 0000 0011 - 3 0000 0100 - 4 0000 0101 - 5 0000 0110 - 6 0000 0111 - 7 0000 1000 - 8 0000 1001 - 9 0000 1010 - 10 0000 1011 - 11 0000 1100 - 12 0000 1101 - 13 0000 1110 - 14 0000 1111 - 15 и т.д. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: нет Всего: 57 |
Во имя экономии памяти и оптимизации скорости обработки избрали именно 8-и кратную систему. Другие основания тормозили бы как вывод на экран, так и всё остальное.
|
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Не так чтоб сразу, я работал на системах с основаниями 5, 6, 7 - увеличение основания происходило с увеличением вычислительной мощности. А сейчас активно проталкиваются Unicode как стандарт, которые есть суть 16 битная система
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Dexter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1562 Регистрация: 2.7.2002 Где: Москва, Бирюлево Репутация: нет Всего: 4 |
Че то я с трудом въезжаю можно как нибудь попроще ![]() ![]() ![]() -------------------- The only thing you really know about me is... ...that's all you'll ever know |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Представь себе 2 шахматные клетки. На них должно стоять по 1й шашке, сколько возможно комбинаций? Очевидно 4:
1) чёрная | чёрная 2) чёрная | белая 3) белая | чёрная 4) белая | белая Это понятно? Другими словами двумя шахматными клетками можно закодировать 4 варианта значений. Например у меня перед кабинетом стоит шахматный столик, и я условился с сотрудниками, что перед уходом из кабинета я буду оставлять там шашки, и по ним можно определить куда я ушёл: Если на столе стоят: чёрная | чёрная - то я ушёл в библиотеку чёрная | белая - то я ушел в столовую белая | чёрная - то я ушел домой белая | белая - то я пью кофе в соседней лаборатории Таким образом у меня закодировано 4 разных варианта ("ушёл в библиотеку","ушел в столовую", "то я ушел домой", "пью кофе в соседней лаборатории") при помощи 2 клеток и шашек которые могут быть либо чёрными либо белыми. Теперь обозначим цвет цифрами: 0 - чёрный 1 - белый Таким образом можно обозначить что: 0 | 0 - то я ушёл в библиотеку 0 | 1 - то я ушел в столовую 1 | 0 - то я ушел домой 1 | 1 - то я пью кофе в соседней лаборатории Естественно, что если использовать больше клеток то можно закодировать большее число вариантов. Например если взять 3 клетки то можно закодировать 8 вариантов: чёрная | чёрная | чёрная чёрная | чёрная | белая чёрная | белая | чёрная чёрная | белая | белая белая | чёрная | чёрная белая | чёрная | белая белая | белая | чёрная белая | белая | белая Или в цифровом выражении: 0 | 0 | 0 0 | 0 | 1 0 | 1 | 0 0 | 1 | 1 1 | 0 | 0 1 | 0 | 1 1 | 1 | 0 1 | 1 | 1 Идя дальше 8 шахматных клеток могут закодировать 256 возможных вариантов. Теперь чуть чуть изменим терминологию: 1 шахматную клетку назовём бит - очевидно что она может передать только 2 варианта ("чёрный/белый" или "0/1" или "True/False" или "Yes/No") 8 шахматных клеток которые могут передать (кодировать) 256 вариантов значений назовём байтом. Каждый возможный вариант раскладки шашек по 8 ячейкам у нас будет кодировать букву, цифру или спец.символ, этот набор кодируемых значков обзовём ASCII или ANSI таблицей. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Dexter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1562 Регистрация: 2.7.2002 Где: Москва, Бирюлево Репутация: нет Всего: 4 |
Понятно.
А в самом начале я правильно написал? -------------------- The only thing you really know about me is... ...that's all you'll ever know |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Нет, вот здесь неправильно. Эта матрица - это массив из 8 элементов и никак иначе -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Dexter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1562 Регистрация: 2.7.2002 Где: Москва, Бирюлево Репутация: нет Всего: 4 |
но всего ведь элементов 256 и каждый с уникальным порядком 1 и 0.
И где в Инете можно почитать про это -------------------- The only thing you really know about me is... ...that's all you'll ever know |
|||
|
||||
suborg |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 29.4.2002 Где: Москва Репутация: нет Всего: нет |
упрощаем понимание: в двоичной системе если каждую цифру числа умножить на нужную степень двойки, и результаты сложить, получится десятичное число. Проще:
умножать надо на (по порядку слева направо) 128, 64,32,16,8,4,2,1. Еще проще: 0101 в двоичном коде будет 0*8 + 1*4 + 0*2 + 1*1, получится 5, значит двоичное число 0101 означает нашу пятёрку. Теперь усложним - двоичное число 00000101 если так же домножить, тоже получится пятёрка, теперь возьмём таблицу символов ASCII и увидем, что под номером пять там находится такой-то символ (не помню какой ![]() Графический адаптер например при работе в текстовом режиме, считывает из памяти байт для каждого знакоместа на экране, и соответственно значению этого байта вырисовывает какой ни будь символ на экране, номер символа в таблице опять же определяется значением этого байта, ну, а каждому номеру символа в таблице приписано своё начертание - это уже шрифт. Фу, кажется опять усложнять начал ![]() |
|||
|
||||
Dexter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1562 Регистрация: 2.7.2002 Где: Москва, Бирюлево Репутация: нет Всего: 4 |
Хотя я все понял, я чувствую себя полным ламером
![]() ![]() ![]() -------------------- The only thing you really know about me is... ...that's all you'll ever know |
|||
|
||||
cosmic |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 28.9.2002 Репутация: нет Всего: нет |
Dexter, зачем тебе больше? не хватает 256? ![]() в принципе, (ради пущего съезжания крыши ![]() (щас вые#####сь, "...сколько разрядов в минимально-адресуемой единице памяти на конкретной машине" ![]() правда я слышал только об алгоритме Hafman'а, в котором символ кодируется неповторимой последовательностью битов нефиксированной длины. чем чаще встречается какой-то символ - тем короче последовательность, которая его кодирует. где почитать про это - не знаю. я это в какой-то "левой" книжке увидел. |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: нет Всего: 54 |
Каждому символу соответствует число (0-255)
Каждое число может быть записано в разных системах счисления, в двоичной, например. Число символов, которое устраивало всех (для набивания текста+простые таблицы) в текстовом режиме было около 190. Т.к. компутер понимает двоичную систему и т.к. минимальное число близкое к 190 и являющееся степенью 2-х (двоичная система) есть 256, т.е. это 2 в степени 8. мы пишем 0 в десятичной, это есть 00000000 в двоичной. пишем 36 в десятичной, это есть 00100100 в двоичной, почему так? Номера бит (нулевой всегда младший, 7 старший: т.е. любой отсчет идет с нуля): 7 6 5 4 3 2 1 0 - это байт, из 8-ми бит. 128 64 32 16 8 4 2 1 - это вес разрядов, так же как в десятичной системе десятки, 1000 100 10 1, где 9 это максимальный разряд, а тут максимальный разряд 1, т.е. сначала 0, потом 1, потом 10, потом 11 и т.д. Т.е. перенос сразу после 1-цы, а в 10-чной системе после 9-ки. Итак 01000100: Как узнать что это за число в десятичном виде: просто берем и складываем веса разрядов. нулевой разряд = 0 , с ним нечего делать и первый 0, они пустышки, теперь 2-ий = 1. Ага 3-й это значит 4 (2^2=4), дальше опять нули, до 6-го разряда (справа налево разряды считаем), 6-ый разряд = 1, ага это 64, т.к. 2^6=64 (а в уме те 4 держим). Дальше по разрядам все нули. Теперь складываем 64+4=66. 66 в десятичной системе есть 01000100. Вот и все. СУВ. -Морковь будете? -Да, пожалйста. -Разрезать? -Спасибо... -Покрошить? -Да-а!! -Разжевать????? -------------------- тут могла быть Ваша реклама... |
|||
|
||||
Dexter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1562 Регистрация: 2.7.2002 Где: Москва, Бирюлево Репутация: нет Всего: 4 |
Вопрос был вобщем-то не по этой теме,
и из двоичной системы в десятичную я умею переводить (с помощью калькулятора (шутка). -------------------- The only thing you really know about me is... ...that's all you'll ever know |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: нет Всего: 54 |
Для тех кто читает спустя рукава, повторяем: Число символов, которое устраивало всех (для набивания текста+простые таблицы) в текстовом режиме было около 190. Т.к. компутер понимает двоичную систему и т.к. минимальное число близкое к 190 и являющееся степенью 2-х (двоичная система) есть 256, т.е. это 2 в степени 8. СУВ ЗЫ. Добавлю, что есть еще 16-ричная система, в которой второй перенос происходит при переходе с 255 на 256. Т.е. очень удобно (16-ной системой пользуются любой программист... и не очень). -------------------- тут могла быть Ваша реклама... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |