1 (23.06.2010 06:29:12 отредактировано Termo)

открыл текстовый редактор, хочу напечатать букву "F".
нажимаю на клавишу "F/А", буква появилась на экране.
вопрос: сколько весит эта буква в битах?

ПатреГ не любит Gnome...

2

От кодировки зависит.
Если UTF-8, то там на разные символы разный вес.

8?

На мясокомбинате я работаю свиньёй.

3 (23.06.2010 08:10:50 отредактировано Termo)

т.е. 1 байт?

второй вопрос: а как вообще происходит перевод нажатия на клавишу в букву на экране?

ПатреГ не любит Gnome...

4

Termo пишет:

т.е. 1 байт?

Не обязательно. Смотря какая кодировка. Sonic выше ведь написал  smile . И с UTF-8 не все так просто. Надо доки читать по этой кодировке. Латиница по 1 байту, кириллица по 2 байта, редко используемые иероглифы еще больше, возможно, что так, но тоже не точно...

5

я про латинские символы.
написано же буква F

ПатреГ не любит Gnome...

6 (23.06.2010 08:35:58 отредактировано Termo)

хорошо! пусть будет 1 байт.
допустим, буква F выглядит так: 00001111
8 бит - 1 байт
я нажал на клавишу F и дальше что?
почему процессор понял, что нажал именно на F?

ПатреГ не любит Gnome...

7

Termo пишет:

я нажал на клавишу F и дальше что?

Дальше клава посылает по проводу (или радио) скан-код нажатой клавиши, драйвер клавы этот код ловит и оповещает систему, что юзер что-то нажал, система передает скан-код активному приложению, а оно, в свою очередь, решает, что в ответ на это нажатие надо в текстовое поле, имеющее в данный момент фокус ввода, добисать букву "F". Как-то так.

8

понял.
а как прерывание (или сопротивление) *я смотрел как клавиатура устроена*
превращается в 1 байт? на каком этапе?
т.е. как происходит превращение электрического сигнала в 1 байт?

как байт превращается в букву это я знаю.
есть таблица кодов, из неё и берется значение.
дескать, 00001111 - это буква F.

ПатреГ не любит Gnome...

9 (23.06.2010 09:42:04 отредактировано mycetophylax)

Termo пишет:

понял.
дескать, 00001111 - это буква F.

В UTF-8 1000110 - это буква F.

10

да без разницы...
я про принцип. мне сейчас частности не нужны.

ПатреГ не любит Gnome...

11

Termo пишет:

а как прерывание (или сопротивление) *я смотрел как клавиатура устроена*
превращается в 1 байт? на каком этапе?
т.е. как происходит превращение электрического сигнала в 1 байт?

Можно почитать тут.

12

Termo, лучше бы про работу ЖК-монитора почитал, там все намного интересней, чем клавиатура  ag

13

Iskan Der пишет:

Можно почитать тут.

ага, спасибо.
почитаем...

ПатреГ не любит Gnome...

14 (23.06.2010 11:40:02 отредактировано bormant)

По приведённой ссылке начиная с "От кодов клавиш к их значению" слишком обще ;-)

Некоторые клавиши генерят 2 или больше сканкодов (если правильно путаю, с префиксом E0h, кстати, именно это было причиной изначальной каг'тавости Ног'тон Коммандег'а от дяди Питег'а под DOS (глотал русскую "р", код которой в альтернативной кодировке аккурат E0h)), сканкод генерится на нажатие, автоповтор (если возникнет), отпускание клавиши (на отпускание приходит тот же сканкод с поднятым 8 битом, +80h). На сгенерированный сканкод дёргается аппаратное прерывание от клавиатуры, его обработчик читает из порта ввода/вывода (если не изменяет склероз 60h/64h) сканкод, сигнализирует о завершении аппаратного прерывания. Цепочка сканкодов в зависимости от различных состояний (как клавиатуры: CapsLock, NumLock, так и логических переключателей, например, AltGr - переключение языка, R/L Shift/Alt/Crl) трансформируется в тот или иной символ/код (или целые фразы).
Касательно Linux, функциональность обеспечивается ядром, таблица преобразования загружается через loadkeys (man имеется в наличии).

Думаю, для затравки пока хватит.

ps. Ах, да это пока ещё не буква на экране, на экран её нужно вывести. Бывает ввод без эха (так обычно вводятся пароли, на экран ничего не попадает), и с эхом, когда вводимое отображается на экране, но делает это уже не клавиатура и не её обработчик. Видеоадаптер имеет разные режимы, часть из них "текстовые", часть "графические".
Текстовые режимы отображают одну или несколько страниц видеопамяти (базовый адрес (в реальном режиме, в нём до сих пор стартуют x86) B800h для CGA/EGA/VGA и 8000h для монохромных, символьные разрешения 40х25, 80х25, 80х45, 80х50, 132х25, ... -- из стандартного ряда). Каждое знакоместо экрана представлено в памяти 2 байтами -- один на символ, 1 на "раскраску" - полбайта цвет символа, полбайта -- цвет фона (включая бит мигания/яркости, который может играть роль признака расширенной таблицы символов на ещё 256 символов). В этих режимах "образы" символов загружаются в специальную таблицу (или несколько) видеоадаптера, преобразование кода символа в картинку производит видеоадаптер.
В "графических" режимах видеопамять логически может быть устроена по разному, но основной признак -- растровый вывод -- нельзя записать код символа в определённую ячейку видеопамяти и увидеть его на экране, вместо этого нужно выводить его "картинку". Однако, не стоит пугаться, обычно эту функциональность берёт на себя BIOS или ОС.

15 (23.06.2010 15:47:37 отредактировано Termo)

oO oO
но, в принципе, понятно. 
спасибо...  smile

ПатреГ не любит Gnome...

16

Вот вы)))) Клавишное поле устроено, как решётка. пересечения - это места для кнопок. По горизонтальным шинам постоянно передаются импульсы опроса. Вертикальные линии - приёмники. При нажатии кнопки, импульсы соответствующей горизонтальной линии направляются через замкнутые контакты клавиши на соответствующий приёмник вертикальной линии. Процессор клавиатуры подаёт нужные ему данные на горизонтальные линии и после нажатия кнопки - соответствующий стандартный код на выход. А уже компьютер средствами ОСи стандартные сканкоды интертпретирует, как задано ОСью.

Mandriva 2010 Pwp. на Duron-850, 256 RAM.  Ну, кто круче? ;-))

17

Termo пишет:

т.е. 1 байт?

второй вопрос: а как вообще происходит перевод нажатия на клавишу в букву на экране?

Это тебе нужно проштудировать книгу Чарльза Пецтольда, "Код. Тайный язык информатики"

Вот тут посмотри.

18 (04.09.2012 14:11:58 отредактировано artsonik)

[эвфемизм нецензурного слова] мне такой вопрос препод задал на экзамене ))) ха я сказал в то время типа контакт замыкается и все есть сигнал, улыбнулся и мою 4ку поставил)) smile http://s004.radikal.ru/i205/1008/6f/a47f003c5276.png
http://s004.radikal.ru/i205/1008/6f/a47f003c5276.png http://s004.radikal.ru/i205/1008/6f/a47f003c5276.png http://s004.radikal.ru/i205/1008/6f/a47f003c5276.png http://s004.radikal.ru/i205/1008/6f/a47f003c5276.png http://s004.radikal.ru/i205/1008/6f/a47f003c5276.png http://s004.radikal.ru/i205/1008/6f/a47f003c5276.png

Торжественно клянусь выучить следующий пункт правил:
3.1.8. Подпись пользователя не может содержать рекламы, без согласования с администрацией.