6 bits, 12 bytes
Jump to navigation
Jump to search
6 bits, 12 bytes is the fifth ___ bits ___ bytes language and the first one to not be a joke, created by Europe2048.
| Designed by | User:Europe2048 |
|---|---|
| Appeared in | 2024 |
| Memory system | Stack-based |
| Dimensions | one-dimensional |
| Computational class | Bounded-storage machine |
| Reference implementation | Unimplemented |
| Influenced by | the four other __ bits, __ bytes |
| Influenced | 0 Bits, 0 Bytes |
| File extension(s) | .6btb |
Characters
Here is the standard character map used for outputting, one character per byte:
. 0123456789ABCDEF
0 □αβγδεζηθικλμνξπ
1 ρστυφχψωΔΘΛΞΠΦΨΩ
2 !"#$%&'()*+,-./
3 0123456789:;<=>?
4 @ABCDEFGHIJKLMNO
5 PQRSTUVWXYZ[\]^_
6 `abcdefghijklmno
7 pqrstuvwxyz{|}~⌂
8 €ΣςΓƒ…†‡ˆ‰Š‹Œ♦Ž♠
9 ≠≤≥☺♥•–—˜™š›œ♣žŸ
A █¡¢£¤¥¦§¨©ª«¬▄®¯
B °±²³´▀¶·¸¹º»¼½¾¿
C ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ
D ÐÑÒÓÔÕÖרÙÚÛÜÝÞß
E àáâãäåæçèéêëìíîï
F ðñòóôõö÷øùúûüýþÿ
Commands
"top value of the stack" is shortened to "top value". Do A on B means to pop B, and push operation A applied to B.
Talk before you change! (if you aren't the owner)
| Byte | Name | Shortened | Action |
|---|---|---|---|
| 00 | null | * |
Does absolutely nothing. |
| 01 | duplicate | . |
Duplicates the top value. |
| 02 | over | , |
Duplicates the second-to-top value. |
| 03 | flip | : |
Flips the top two values. |
| 04 | flip all | ↕ |
Flips the entire stack. |
| 05 | pop | ◌ |
Pops the top value. |
| 06 | add | + |
Adds the top two values. |
| 07 | subtract | - |
Subtracts the top two values. |
| 08 | multiply | × |
Multiplies the top two values. |
| 09 | divide | ÷ |
Divides the top two values. |
| 0a | power | ⁿ |
I think you get the pattern. |
| 0b | modulus | ◿ |
Takes the remainder when divided. |
| 0c | floor | ⌊ |
Rounds towards 0. |
| 0d | sine | ∿ |
|
| 0e | number | # |
Prints the top value as a number. |
| 0f | → |
Prints the top value as a character (modulo 256). Printing a bell character will play a sound. | |
| 10 | zero | 0 |
Pushes 0. |
| 11 | one | 1 |
Pushes 1. |
| 12 | two | 2 |
Pushes 2. |
| 13 | three | 3 |
Pushes 3. |
| 14 | four | 4 |
Pushes 4. |
| 15 | five | 5 |
Pushes 5. |
| 16 | six | 6 |
Pushes 6. |
| 17 | seven | 7 |
Pushes 7. |
| 18 | eight | 8 |
Pushes 8. |
| 19 | nine | 9 |
Pushes 9. |
| 1a | push | ↑ |
Pushes a number on to the stack. |
| 1b | pi | π |
Pushes pi. |
| 1c | euler | e |
Pushes Euler's number. |
| 1d | byte | • |
Pushes 256. |
| 1e | round | [ |
Rounds as usual. |
| 1f | ceiling | ⌈ |
Rounds away from 0. |
| 20 | jump | ↷ |
Jumps to the corresponding instruction. |
| 21 | start loop | ( |
Jumps to the corresponding ) if the top value is ≤0. |
| 22 | end loop | ) |
Goes back to the corresponding ( if the top value is >0. |
| 23 | input | ↓ |
Input a number and push it to the stack. |
| 24 | increment | i |
Increases the top value by 1. |
| 25 | decrement | d |
Decreases the top value by 1. |
| 26 | square | s |
Squares the top value. |
| 27 | negative | ` |
Negates the top value. |
| 28 | short | σ |
Pushes 65536. |
| 29 | int | λ |
Pushes 2147483648. |
| 2a | long | Λ |
Pushes 9223372036854775808. |
| 2b | double | Δ |
Pushes 1.797693134862316e+308. |
| 2c | reciprocal | / |
Divide 1 by the top value. |
| 2d | logarithm | ₙ |
Take log base a of b. |
| 2e | nan | N |
Pushes NaN. |
| 2f | infinity | ∞ |
Pushes infinity (float). |
| 30 | if | c |
If the top value of the stack is a specified number, run the code. |
| 31 | else | C |
Otherwise, do this. |
| 32 | end conditional | x |
End the code in the else block. |
| 33 | ? | ? |
? |
| 34 | ? | ? |
? |
| 35 | unary | ¹ |
Output the top value in unary. |
| 36 | newline | ↲ |
Insert a newline. |
| 37 | ? | ? |
? |
| 38 | ? | ? |
? |
| 39 | ? | ? |
? |
| 3a | ? | ? |
? |
| 3b | random | ⚂ |
Pushes a random number between 0 and 1. |
| 3c | un | ° |
When put before a command, inverses it. |
| 3d | cycle | ↻ |
Toggles cycle mode: the program goes back to the first command after finishing the last. Cycle mode is off by default. |
| 3e | clear | □ |
Pops everything. |
| 3f | end | ■ |
Ends the program. |
Order
When using a command like subtract -, the top value is the first argument. So,
25-# **** **** ****
outputs 3, but
52-# **** **** ****
outputs -3.
Numbers
Numbers are represented in six bits, using the standard binary representation.
| Number | Byte | Number | Byte | Number | Byte | Number | Byte |
|---|---|---|---|---|---|---|---|
| 0 | 00 | 16 | 10 | 32 | 20 | 48 | 30 |
| 1 | 01 | 17 | 11 | 33 | 21 | 49 | 31 |
| 2 | 02 | 18 | 12 | 34 | 22 | 50 | 32 |
| 3 | 03 | 19 | 13 | 35 | 23 | 51 | 33 |
| 4 | 04 | 20 | 14 | 36 | 24 | 52 | 34 |
| 5 | 05 | 21 | 15 | 37 | 25 | 53 | 35 |
| 6 | 06 | 22 | 16 | 38 | 26 | 54 | 36 |
| 7 | 07 | 23 | 17 | 39 | 27 | 55 | 37 |
| 8 | 08 | 24 | 18 | 40 | 28 | 56 | 38 |
| 9 | 09 | 25 | 19 | 41 | 29 | 57 | 39 |
| 10 | 0a | 26 | 1a | 42 | 2a | 58 | 3a |
| 11 | 0b | 27 | 1b | 43 | 2b | 59 | 3b |
| 12 | 0c | 28 | 1c | 44 | 2c | 60 | 3c |
| 13 | 0d | 29 | 1d | 45 | 2d | 61 | 3d |
| 14 | 0e | 30 | 1e | 46 | 2e | 62 | 3e |
| 15 | 0f | 31 | 1f | 47 | 2f | 63 | 3f |
There are no other types.
Examples
Does nothing
Normal: □□□□□□□□□□□□ Unshackled: **** **** **** **** Bytes: 00 00 00 00 00 00 00 00 00 00 00 00
Print "hi" in lowercase
Normal: kDˆ<CÀ□□□□□□ Unshackled: ↑C2× →i→* **** **** Bytes: 6b 44 88 3d 43 c0 00 00 00 00 00 00
Truth-machine
Normal: ♠□ρ?ΠαFυÒ□□□ Unshackled: ↓c*0 →Cc. 1(→) **** Bytes: 8f 00 10 3f 1c 01 46 13 d2 00 00 00