บทนำ
สีเทารหัสเป็นทางเลือกแทน binary ซึ่งจำนวนจะเพิ่มขึ้นด้วยการสลับเพียงหนึ่งบิตมากกว่าตัวแปรจำนวนบิต นี่คือรหัสสีเทาบางส่วนพร้อมกับทศนิยมและเลขฐานสองของพวกเขา:
 decimal | binary | gray
-------------------------
       0 |      0 |    0
-------------------------
       1 |      1 |    1
-------------------------
       2 |     10 |   11
-------------------------
       3 |     11 |   10
-------------------------
       4 |    100 |  110
-------------------------
       5 |    101 |  111
-------------------------
       6 |    110 |  101
-------------------------
       7 |    111 |  100
-------------------------
       8 |   1000 | 1100
-------------------------
       9 |   1001 | 1101
-------------------------
      10 |   1010 | 1111
-------------------------
      11 |   1011 | 1110
-------------------------
      12 |   1100 | 1010
-------------------------
      13 |   1101 | 1011
-------------------------
      14 |   1110 | 1001
-------------------------
      15 |   1111 | 1000
ลวดลายบิตของรหัสสีเทา
บางครั้งเรียกว่า "reflection binary" คุณสมบัติของการเปลี่ยนเพียงครั้งละหนึ่งบิตสามารถทำได้อย่างง่ายดายด้วยรูปแบบวงจรแบบวงกลมสำหรับแต่ละคอลัมน์เริ่มต้นจากบิตที่มีนัยสำคัญน้อยที่สุด:
bit 0: 0110011001100110011001100110011001100110011001100110011001100110
bit 1: 0011110000111100001111000011110000111100001111000011110000111100
bit 2: 0000111111110000000011111111000000001111111100000000111111110000
bit 3: 0000000011111111111111110000000000000000111111111111111100000000
bit 4: 0000000000000000111111111111111111111111111111110000000000000000
bit 5: 0000000000000000000000000000000011111111111111111111111111111111
... และต่อไป
วัตถุประสงค์
กำหนดสตริงอินพุตแบบไม่มีการบุของโค้ดสีเทาให้เพิ่มโค้ดสีเทาโดยการสลับอักขระเดี่ยวในลำดับหรือการเตรียม a 1(เมื่อเพิ่มขึ้นเป็นกำลังถัดไปของ 2) จากนั้นเอาต์พุตผลลัพธ์เป็นโค้ดสีเทาแบบไม่มีเบาะ
คำเตือน
- ไม่ต้องกังวลกับการถ่าย
0หรือสตริงว่างเปล่าเป็นอินพุต - อินพุตต่ำสุดจะเป็น
1และไม่มีขอบเขตบนของความยาวสตริงนอกเหนือจากข้อ จำกัด หน่วยความจำที่กำหนดโดยสภาพแวดล้อม - โดยสตริงที่ไม่มีเบาะฉันหมายถึงจะไม่มีช่องว่างนำหน้าหรือต่อท้าย (นอกเหนือจากบรรทัดใหม่ที่เป็นทางเลือก) และไม่มีการนำหน้า
0ในอินพุตหรือเอาต์พุต 
รูปแบบ I / O
รูปแบบต่อไปนี้เป็นรูปแบบที่ได้รับการยอมรับสำหรับอินพุตและเอาต์พุต แต่สนับสนุนให้ใช้สตริงกับรูปแบบอื่น:
- "บิต" ที่สำคัญที่สุดก่อน
 - อาร์เรย์อักขระหรือสตริงที่ไม่ใช่แบบเสริมของ ASCII 
'1's และ'0's - อาร์เรย์จำนวนเต็มแบบไม่เพิ่มของ
1s และ0s - อาร์เรย์บูลีนที่ไม่มีเบาะ
 
ไม่อนุญาตอะไร:
- "บิต" ที่สำคัญน้อยที่สุดก่อน
 - เลขฐานสิบ, เลขฐานสองหรือเลขจำนวนเต็ม
 - โครงสร้างข้อมูลความยาวคงที่
 - อาร์เรย์อักขระหรือสตริงของดัชนี ASCII ที่ไม่สามารถพิมพ์ได้
1และ0 
การทดสอบ
input -> output
1 -> 11
11 -> 10
111 -> 101
1011 -> 1001
1111 -> 1110
10111 -> 10110
101100 -> 100100
100000 -> 1100000
การทดสอบเพิ่มเติมสามารถเพิ่มได้ตามคำขอ
เกณฑ์
นี่คือรหัสกอล์ฟโปรแกรมที่สั้นที่สุดในหน่วยไบต์ชนะ! ความสัมพันธ์ทั้งหมดจะถูกทำลายโดยได้รับความนิยมก่อนหน้านี้; ช่องโหว่มาตรฐานใช้ คำตอบที่ส่งที่ดีที่สุดจะได้รับการยอมรับ 9 ตุลาคม 2016 และปรับปรุงเมื่อใดก็ตามที่คำตอบที่ดีกว่าจะได้รับ
0011สำหรับ 8