4비트 두개를 하나의 4비트로 변환할수 없을까요?

visang9의 이미지

갑자기 궁금한게 있어서 이렇게 글을 올립니다.
1바이트를 4비트씩 나눈후...
앞에 4비트에는 0~5
뒤에 4비트에는 0~9
를 넣어두고 이를 다시 4비트로 압축(?) 시킬수가 있을까요?
혹시 될까해서 비트연산 이래 저래 해봤는데...
안나오더라구요...;;
혹시 다른 방법이 있을까요???

atraea의 이미지

불가능합니다.
위의 정보는 앞의 6개, 뒤의 10개를 표현해야 하는데
이것의 가능성은 6*10의 60개입니다.
최소 6비트(64개)의 공간이 필요하네요.

bushi의 이미지

더하기/빼기 추천합니다.
합쳐놓고 보면
0~5, 6~15
------------
- 주실 것 까지야.

초대량의 데이타를 말도 안되는 상황에서 다뤄야만 되는 상황이라면,
적당한 손실압축과 정밀한 추론 알고리즘을 사용해서
평균 4bit 를 달성할 수 있을 지도 모른다는 상상까지는 해 봤습니다.

실현 가능성을 얘기해보라면...
더하기/빼기 보다는 좀 더 쳐줘야 되지 않겠나 싶습니다.

cleansugar의 이미지

질문에서 결과값이 6+10비트인지 6*10비트인지 불명확합니다.

log2(6+10), log2(6*10)의 차이입니다.

만일 메모리를 적게 차지하는 목적이라면

둘 중 하나를 키로 삼고 XOR하면 4비트 변수만 3개로 연산이 되는것 같습니다.

내용이 규칙적이라면 압축알고리듬을 알아보세요.

제가 더는 몰라서 여기까지.

그리고 참고로 동기신호로 통신을 이용하면 데이터 저장장소를 줄일 수 있습니다.

만약 8비트 정보를 4비트로 보내고 싶으면 4사이클 신호에 얹으면 됩니다.

공간을 시간으로 잠깐 변환시키는 것입니다.

재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.

아이디의 아이디어 무한도전
http://blog.aaidee.com

귀태닷컴
http://www.gwitae.com

Necromancer의 이미지

비손실 데이터 압축방법 중에 호프먼 코딩이라는게 있습니다.
어떤 원리냐면 자주 나오는 코드를 길이가 짧은 코드로 대체하는거죠.

예를 들어 어떤 파일의 전체 데이터가 8바이트 단위로
0x33이 100번, 0x26이 15번, 0x67이 2번, 0x13이 1번 나왔다면

0x33 = 0b (1비트 길이)
0x26 = 10b (2비트 길이)
0x67 = 110b (3비트 길이)
0x13 = 111b (3비트 길이)

각각의 코드들을 위 표대로 변환시켜 저장함으로써 압축효과를 내게 됩니다.
물론 표 정보도 따로 기록이 되어야 하지요.
GIF 등에 사용되는 LZW 압축도 이방식입니다.

또다른 것은 RLE라는 것이 있는데, 이건 단순하고 누구나 생각할 수 있늘 알고리즘입니다.
'aaaaa'라는 문자열이 있으면 '5a' 식으로 써 넣는 거죠.

Bzip2에는 위와 전혀 다른 방식의 알고리즘이 적용되어 있고요.
문자열 비교로 하는것인데, 이 알고리즘의 특성상 속도가 느릴 수 밖에 없다고 하네요.

비손실 압축은 보통 이런것을 많이 씁니다.

Written By the Black Knight of Destruction

Written By the Black Knight of Destruction

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.