박상길
Sang-Kil Park

Home > Articles

Speaking in Binary


01000110011011110111001000100000011101000110100001100101001000000110
01110110010101100101011010110111001100101100001000000110000100100000
01101100011010010111010001110100011011000110010100100000011010100110
11110110101101100101001000000111010001101111001000000111010001101000
01100101001000000110110101111001001000000100001001101100011011110110
01110010111000100000010010000110000101110110011001010010000001100001
00100000011011100110100101100011011001010010000001100100011000010111
10010010000001100001011011100110010000100000011010000110000101110110
01100101001000000110011001110101011011100010000001110111011010010111
01000110100000100000011101000110100001101001011100110010000001101100
01101001011101000111010001101100011001010010000001110100011011110111
10010111001100100001

There are 10 types of people in the world. those who understand binary and those who don't.

세상에는 10종류의 사람들이 있습니다. 이진수를 이해하는 사람과 이해하지 못하는 사람.

이해하는 사람이라면 한번 번역해보세요.


트랙백

코멘트

1.us 2004년 11월 6일 오전 2시 56분, ilovja [TypeKey Profile Page] 작성:

제가 제대로 이해했는지 모르겠는데요. ...10 types.. 는 1 type + 0 type의 10 types로도 볼 수 있는 중의법이 쓰인거 맞죠?

2.us 2004년 11월 6일 오전 2시 58분, ilovja [TypeKey Profile Page] 작성:

오... 이런 제가 실수로 엔터를... 10 types 할때 10이 이진수로 2를 뜻한다고 적으려고 했었습니다 ^^;

#kr 2004년 11월 6일 오전 3시 4분, likejazz [TypeKey Profile Page] 작성:

넵 정확합니다. 이진수를 이해하는 사람이라면 10 types 가 10가지가 아님을 잘 알고있겠지요. 오래된 유머입니다 :)

3.kr 2004년 11월 6일 오전 4시 30분, 손님 작성:

정말 재미있는건. 10 types 를 중의적으로 해석하는게 결국 10 type'd 에 익숙한 사람이라는거죠. 죽어도 10 types 한(?) 컴퓨터는 이해 못한다는게 새삼 새롭군요. 하하

#kr 2004년 11월 8일 오전 2시 40분, likejazz [TypeKey Profile Page] 작성:

멋진 부연설명입니다 :)

4.kr 2004년 11월 6일 오전 11시 32분, 토끼군 작성:

엄청나게 유명한/오래 된 유머네요. ;) 저는 이런 프로그램을 즉석에서 짜서 돌렸습니다.

>>> p = '''(저 내용을 복사->붙여넣기)'''.replace('''
... ''','') #내용을 복사한 후 엔터 친 걸 다 지움
>>> len(p)
768
>>> import sys
>>> for x in xrange(0,768,8): sys.stdout.write(chr(int(p[x:x+8],2)))
...
For the geeks, a little joke to the my Blog. Have a nice day and have fun with this little toys!

역시 간단하게 프로그래밍할 때는 파이썬이 최고라니깐요. ;)

#kr 2004년 11월 8일 오전 2시 41분, likejazz [TypeKey Profile Page] 작성:

아니 이사람들이 ..

5.kr 2004년 11월 7일 오후 2시 30분, 라드 작성:

하하.. 파이썬은 잘몰라서... C로 함 해봤어요. 생각보다 길어지네요.
가급적 위의 코드와 비슷하게...ㅋㅋ
첨으로 코멘트 남겨요.. 반갑습니다.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char buf[10];
int i,len;
char *p = "(내용을 복사한 후 엔터 친 걸 다 지움)";

for(i=0; i<strlen(p); i+=8)
fprintf(stdout, "%c", (int)strtol((sprintf(buf, "%.8s", p + i), buf), NULL, 2));
exit(EXIT_SUCCESS);
}

#kr 2004년 11월 8일 오전 2시 41분, likejazz [TypeKey Profile Page] 작성:

으음.

6.kr 2004년 11월 7일 오후 2시 32분, 라드 작성:

하하 잘못올렸나;; for문이 이상해져 버리네요.
for(i=0; i<strlen(p); i+=8)
fprintf(stdout, "%c", (int)strtol((sprintf(buf, "%.8s", p + i), buf), NULL, 2));

7.kr 2004년 11월 7일 오후 6시 0분, Kiseok [TypeKey Profile Page] 작성:

Perl :
$bit_string =~ s!\n!!g;
while( $bit_string =~ s!([01]{8})!pack("B8", $1)!ge ){1;}
print $bit_string;

#kr 2004년 11월 8일 오전 2시 41분, likejazz [TypeKey Profile Page] 작성:

허허, 참 ..

8.kr 2004년 11월 8일 오전 6시 17분, icedac 작성:

저도 심심해서 한번, 좀 깁니다. -_ -;
C++:
#include <algorithm>
#include <numeric>
#include <iostream>
struct char_to_number { char operator () ( char org ) const { return org - '0'; } };
char sum_of_8( std::vector<char>::iterator itr ) {
static const char multiplier[] = { 128, 64, 32, 16, 8, 4, 2, 1 };
return std::inner_product( multiplier, multiplier+8, itr, 0 );
}
std::string binarystring_to_string( std::string s_in )
{
std::string s_out;
std::vector<char> in;
std::transform( s_in.begin(), s_in.end(), std::back_inserter(in), char_to_number() );
for ( int i = 0; i < (in.size()/8); ++i ) s_out.push_back( sum_of_8( in.begin() + (i*8) ) );
return s_out;
}
void main(void) { std::cout << binarystring_to_string("01000110-BinaryData") << endl; }

#kr 2004년 11월 8일 오후 9시 24분, likejazz [TypeKey Profile Page] 작성:

부라보.

9.kr 2004년 11월 8일 오전 8시 37분, 토끼군 작성:

음... 갑자기 KLDP BBS 명예의 전당을 보는 느낌이 드는 군요. -_-;;;;;;;

10.kr 2004년 11월 8일 오전 8시 57분, 토끼군 작성:

명예의 전당(..) 된 김에 파이썬 두번째 버전입니다. 조금 꼬아 봤는데 뭐 잘 나오는 것 같으니 다행이군요 -_-;;;

print''.join((lambda o=''.join("""(여기에 복사-붙여넣기)""".split()):[eval(r"'\x%02x'"%(reduce(lambda x,y:(x<<1)|(ord(y)&-49),o[z<<3:][:1<<3],0)))for z in xrange(len(o)>>3)])())

#kr 2004년 11월 8일 오후 9시 26분, likejazz [TypeKey Profile Page] 작성:

박수 짝짝짝.

11.us 2004년 11월 8일 오후 6시 15분, ilovja [TypeKey Profile Page] 작성:

소스코드는 이해하지 못해도 보기만 해도 즐거워요. 저도 geek인가봐요 ^^

#kr 2004년 11월 8일 오후 9시 29분, likejazz [TypeKey Profile Page] 작성:

예전부터 훌륭한 geek 이셨잖아요 :)

12.kr 2004년 11월 8일 오후 10시 23분, wookay 작성:

import Char
import Bits

str="01000110011011110111001000100000011101000110100001100101001000000110"
++" 한줄씩 갖다 붙여주세요 ^^"
++"10010111001100100001"

split8 (x128:x64:x32:x16:x8:x4:x2:x1:xs) = [x128:x64:x32:x16:x8:x4:x2:x1:[]] ++ split8 xs
split8 (x:xs) = [x:[]++xs]
split8 "" = []

myBin (c,n) = shift (ord c - ord '0') n::Int
myChar binstr = chr (sum (map myBin (zip (reverse binstr) [0..7])))
decrypt s = map myChar (split8 s)

main = do
print (decrypt str)
-- http://wookay.com/code/haskell/

#kr 2004년 11월 9일 오후 7시 29분, likejazz [TypeKey Profile Page] 작성:

Haskell!

13.kr 2004년 11월 9일 오전 0시 6분, 토끼군 작성:

이번엔 하스켈이네요. ;) 그나저나 LikeJAzz 님의 답글을 순서대로 읽어 보면 뭔가 이상한 느낌이... ;;;;
ilovja: http://bbs.kldp.org/viewtopic.php?t=26098 이런 글 읽어 보시면 재밌어 하실 것 같습니다. :D

#kr 2004년 11월 9일 오후 7시 30분, likejazz [TypeKey Profile Page] 작성:

이상할것까지야 :) 날잡아서 하나하나 실행해볼꺼에요~

14.us 2004년 11월 9일 오전 2시 51분, ilovja [TypeKey Profile Page] 작성:

하하 ^^ 토끼군님 걸어주신 링크 재밌게 보았습니다. 어떻게 제 취향을 간파하시고

#kr 2004년 11월 9일 오후 7시 30분, likejazz [TypeKey Profile Page] 작성:

ilovja 님도 죠리퐁세기에 관심있으신가요 ? ;)

15.kr 2004년 11월 10일 오전 1시 24분, wookay 작성:

EOS equ 0ah
segment .data
binstr db "이번엔 어셈 삽질입니다한줄씩 갖다 붙여주세요 ^^10010111001100100001",EOS
segment .bss
character resd 1
segment .text
global _start
_start:
push ebx
push esi

mov esi, binstr
decrypt:
xor al, al
mov ecx, 8
myChar:
mov byte dl, [esi]
cmp dl, EOS
je quit

sub dl, '0'
shl dl, cl
shr dl, 1
add al, dl
inc esi
loop myChar

mov ecx, character
mov [ecx], al
mov eax, 4 ; sys_write
mov ebx, 0 ; stdout
mov edx, 1
int 80h

jmp decrypt
quit:
pop esi
pop ebx

mov eax, 1 ; sys_exit
mov ebx, 0
int 80h
; http://wookay.com/code/asm/

#kr 2004년 11월 10일 오전 10시 23분, likejazz [TypeKey Profile Page] 작성:

엇 이런 .. 점점 더 인간이 알아보기 힘든형태로 도출되는군요.

16.kr 2004년 11월 10일 오후 4시 0분, 토끼군 작성:

가장 알아 먹기 힘든 형태로 해 보겠습니다. 근데 여기에 올리면 깨지기 때문에 -,.- 링크로...
http://pandora.sapzil.info/text/20041110.befunge.bin2char.txt

#kr 2004년 11월 10일 오후 9시 38분, likejazz [TypeKey Profile Page] 작성:

정말 알아먹기가 힘들잖아요 버럭!

17.kr 2004년 11월 10일 오후 7시 50분, cybaek 작성:

웹서비스로 제공해주시면, 그냥 주워 먹겠습니다. ^^

#kr 2004년 11월 10일 오후 9시 40분, likejazz [TypeKey Profile Page] 작성:

건당 50원의 유료서비스입니다 :)

18.kr 2004년 11월 10일 오후 8시 49분, wookay 작성:

첨보는 언어군여 ㅋㅋ
http://kotisivu.mtv3.fi/quux/jsbef/index.html
자바스크립트 befunge 인터프리터로 돌려봤습니다
Edit해서 갖다 붙이고 Run하고 Speed 4
음. 저럴수가. ^^

#kr 2004년 11월 10일 오후 9시 42분, likejazz [TypeKey Profile Page] 작성:

오오 정말 멋지게 실행되는군요, 놀라워요! 만든사람(토끼군님)이나 인터프리터나 그 인터프리터를 찾아낸 wookay 님이나 .. :)

19.kr 2004년 11월 10일 오후 10시 2분, 토끼군 작성:

저는 funge 프로그래밍 할 때 visbef라는 프로그램을 씁니다. ;)

20.kr 2004년 11월 11일 오후 8시 51분, 어셈러브 작성:

http://www.asmlove.co.kr/bbs/zboard.php?id=tipntech&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=65

#kr 2004년 11월 11일 오후 10시 42분, likejazz [TypeKey Profile Page] 작성:

^^;

21.kr 2004년 11월 13일 오후 2시 15분, windpipe 작성:

글자수가 많아서 소스가 다 올라가지 않는군요.
Win32 MMX Assembly버전입니다.
http://www.asmlove.co.kr/bbs/zboard.php?id=fast_mmx&page=1&page_num=20&select_arrange=headnum&desc=&sn=off&ss=on&sc=on&keyword=&no=28&category=1

#kr 2004년 11월 14일 오전 8시 25분, likejazz [TypeKey Profile Page] 작성:

-_-

이글에 대한 트랙백과 코멘트는 더이상 지원하지 않습니다.

| 다음 글