키보드 입력에서요. 스캔코드와 키코드..

tkvkdldj926의 이미지

안녕하세요? 키보드 입력 후 화면에 보여주기 까지..

스캔코드 -> 키코드 -> 아스키 코드로 변환이 되는 것으로 알고 있는데요...

스캔코드와 키코드의 차이점이 무엇인가요?

왜 스캔코드에서 아스키 코드로 바꾸지 않고,

중간에 키코드를 사용하는 것인가요?

Prentice의 이미지

우선, 저는 스캔코드에 대해 잘 모릅니다. 자세한 건 전혀 모릅니다.

그래도... 스캔코드가 같아도 키 매핑 설정에 따라 (영어? 불어? 독어? 언어 설정의 영향도 받겠죠) 키코드가 달라지고 아스키 코드도 달라지는 것은 아닐까요?

gurugio의 이미지


저도 예전에 만든거라 세부적인 기억은 나지 않습니다만 제가 기억나는대로 말씀드리면요.

스캔코드는 키보드의 상태에 대한 코드입니다.
만약 num lock이 눌려있으면 같은 0키를 눌러도 다른 스캔이 전달됩니다.
따라서 0키가 늘 같은 값만 전달하는게 아닙니다.
shift, ctrl, capslock 등이 동시에 눌린것도 있고, 여러 상태가 있을 수 있으니까요.

chadr의 이미지

스캔 코드는 말 그대로 키보드에서 출력하는 키보드에 특화된 데이터입니다.
키코드는 말 그대로 운영체제에서 특정 키를 인식하는 코드입니다. 운영체제에 특화된 데이터입니다.
아스키코드는 우리가 일반적으로 인식하는 아스키에 표준화된 데이터입니다.

키보드는 우리가 인식하는 키, 아스키코드 이런거 모릅니다.
단순히 키보드에서 어떤 키에 어떤 숫자가 매핑 되어 있는지 밖에 모릅니다.

그 숫자(스캔코드)에 의미를 부여하는 것이 운영체제고 그 의미에 우리가 인식하는 문자를 대입한 것이 아스키코드입니다.

따라서 운영체제는 스캔코드를 읽어서 운영체제의 로케일에 따라 스캔코드에 키코드를 매핑하여 어떤 문자라는 것을 의미부여합니다.

그리고 해당 문자가 사람이 알아보고 일반적으로 사용되는 아스키코드라는 것에 매핑시켜서 사람이 사용할 수 있도록 해주는 것입니다.

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.