EDS แคมป์ที่พักของสายลับหน้าใหม่
ยินดีต้อนรับเข้าสู่EDS แคมป์ที่พักของสายลับหน้าใหม่ สถานที่รวบรวมบุคคลหน้าแปลก เอ้ย แปลกหน้าที่รักการผจญภัย อยากรู้อยากเห็น และสนุกไปกับแชทกับผู้คนมากมาย ลองสมัครแล้วมาเป็นสมาชิกด้วยกันสิ ^ ^

Join the forum, it's quick and easy

EDS แคมป์ที่พักของสายลับหน้าใหม่
ยินดีต้อนรับเข้าสู่EDS แคมป์ที่พักของสายลับหน้าใหม่ สถานที่รวบรวมบุคคลหน้าแปลก เอ้ย แปลกหน้าที่รักการผจญภัย อยากรู้อยากเห็น และสนุกไปกับแชทกับผู้คนมากมาย ลองสมัครแล้วมาเป็นสมาชิกด้วยกันสิ ^ ^
EDS แคมป์ที่พักของสายลับหน้าใหม่
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Go down
/Charcoal/
/Charcoal/
ผู้รวบรวมความจริง
ผู้รวบรวมความจริง
จำนวนข้อความ : 2222
ชื่อเสียง&น้ำใจ ชื่อเสียง&น้ำใจ : 171
วันเกิด : 02/03/1920

Brainfuck code Empty Brainfuck code

Fri Mar 28, 2014 8:51 am
brainfuck หรือ brainf*ck คือ Turing-complete language มีตัวดำเนินการเพียง 8 ตัว  อิงตามภาษา P prime prime (P")   ถูกคิดค้นขึ้นโดย Urban Müller ในปี 1993  เป้าหมายเพื่อจะสร้าง Turing-complete language ที่เขาจะสามารถเขียน compiler ที่เล็กที่สุดได้ใน Amiga OS 2.0   compiler ของเขามีขนาดเพียง 240 bytes เท่านั้น แม้ว่าในภายหลังจะมีการพัฒนาทำให้มีขนาดเพิ่มจากนี้เล็กน้อย
Brainfuck program จะดำเนินการกับ byte pointer ซึ่งจะเคลื่อนที่ไปมาใน char array ขนาด 30000 bytes ซึ่งจะมีค่าเป็น 0 ทุกตำแหน่งในตอนเริ่มต้น  pointer ในตอนเริ่มก็จะอยู่ที่ตำแหน่งแรกของ array

ภาษา Brainfuck ประกอบด้วยคำสังแปดคำสั่ง โดยแต่ละคำสั่งจะแทนด้วยอักขระเพียงตัวเดียวเท่านั้น
ข้อมูลเพิ่มเติม : http://web.archive.org/web/20120505031152/http://en.wikipedia.org/wiki/Brainfuck


CharacterAction
>
เลื่อน pointer ขึ้น
<
เลื่อน poiter ลง
+
เพิ่มค่า byte ณ จุดที่ pointer ชี้
-
ลดค่า byte ณ จุดที่ pointer ชี้
.
แสดงค่า byte ที่ pointer ชี้
,
รับค่า byte และเก็บค่าไว้ใน byte ที่ pointer ชี้
[
ไปหลัง ] ถ้า byte ที่ pointer ชี้เป็น 0
]
ย้อนกลับไปที่ [ จนกว่า byte ที่ pointer ชี้จะเป็น 0
คำสั่งต่างๆของ Brainfuck สามารถแปลงเป็นคำสั่งในภาษา C ได้ตามนี้ (ถือว่า 'p' ถูกประกาศเป็น char*)


CharacterBecomes
++p;
--p;
++*p;
--*p;
putchar(*p);
*p = getchar();
while (*p) {
}
เช่น

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++++++++++ >+<--------.>.+++++++..

แปรผลออกมาได้คำว่า

Hell

อย่างงี้เป็นต้น
ดังนั้น brainfuck เป็นการเข้ารหัสที่ค่อยข้างน่าปวดหัวสมชื่อเลยทีเดียว เนื่องจากข้อความข้อความหนึ่งอาจจะออกมาในรูปแบบไหนก็ได้ ยาวแค่ไหนก็ได้  อาจมีโค้ดสัก 37 หน้ากระดาษ แต่ถอดออกมาได้อักษรเดียวก็ได้ แต่โค้ดหนึ่งๆ สามารถถอดออกมาได้เพียงข้อความเดียวเท่านั้น ดังนั้น รหัสนี้ เป็นการเข้ารหัสที่ผู้ถอดรหัสค่อนข้างจะได้เปรียบกว่าผู้ไขรหัส  เพียงแค่ทำความเข้าใจในวิธีการของมันได้แล้ว ก็จะสามารถแก้รหัสได้เลย แต่หากจะเข้ารหัส ต้องมานั่งทำโค้ดออกมา ซึ่งการวางรูปแบบโค้ดเหล่านี้ให้สวยงามและลายตา เป็นความสามารถเฉพาะบุคคลจริงๆ

อาจจะดูมึนไปนิด แต่ถ้ามีอะไรสงสัยถาม fourth ได้เลยครับ :p
fourth
fourth
ผู้รวบรวมความจริง
ผู้รวบรวมความจริง
จำนวนข้อความ : 1812
ชื่อเสียง&น้ำใจ ชื่อเสียง&น้ำใจ : 94
งานอดิเรก งานอดิเรก : มองฟ้าตอนกลางคืน

Brainfuck code Empty Re: Brainfuck code

Fri Mar 28, 2014 4:11 pm
บอกได้เลยว่าต้องอึดมากกกกกกกกกกกกกกกกกกกกกกกกกกกก ฮ่าๆๆ
avatar
ผู้มาเยือน
ผู้มาเยือน

Brainfuck code Empty Re: Brainfuck code

Sat Mar 29, 2014 10:53 pm
คิดว่ามันยากที่จะเข้าใจในการอ่านครั้งเดียว แต่คนคิดคงเวลาเยอะนะครับ ไว้มาทำความเข้าใจ มันน่าสนุก
ปริศนาเอ่ยจงซับซ่อนยิ่งขึ้น ตามนั้นอะไรอีกไม่รู้
ขึ้นไปข้างบน
Permissions in this forum:
คุณไม่สามารถพิมพ์ตอบ