Post History
Simple challenge: Read a byte, swap bit 7 with 0, 6 with 1, 5 with 2 and 4 with 3 and then output the byte. For example the byte 0b1001'1100 would turn into 0b0011'1001. Rules: Shortest code wi...
#3: Post edited
- Simple challenge: Read a byte, swap bit 7 with 0, 6 with 1, 5 with 2 and 4 with 3 and then output the byte. For example the byte `0b1001'1100` would turn into `0b0011'1001`.
- Rules:
- - Shortest code wins
- - A byte has at least 8 bit. If it makes things easier, you can use a bigger byte size. The size should be independent of the value.
- - Reverse at least 1 byte. If it makes it easier, you can reverse more.
- - The byte to reverse is the only required input. But if it makes it easier, a input for the byte size and a input for the number of bytes to reverse can be required.
- You can choose the input and output format, but both have to be the same and if the input is either a list of digits or a written number, the code has to support inputs that don't have leading 0's (i.e. if you choose to use a binary number written in ASCII, the input maybe only `"1010"` and you would have to output either `"01010000"` or `"1010000"`)- ### Test cases
- ```
- Input Byte -> Output Byte
- 0x00 -> 0x00
- 0x01 -> 0x80
- 0x02 -> 0x40
- 0x03 -> 0xc0
- 0x04 -> 0x20
- 0x05 -> 0xa0
- 0x06 -> 0x60
- 0x07 -> 0xe0
- 0x08 -> 0x10
- 0x09 -> 0x90
- 0x0a -> 0x50
- 0x0b -> 0xd0
- 0x0c -> 0x30
- 0x0d -> 0xb0
- 0x0e -> 0x70
- 0x0f -> 0xf0
- 0x10 -> 0x08
- 0x11 -> 0x88
- 0x12 -> 0x48
- 0x13 -> 0xc8
- 0x14 -> 0x28
- 0x15 -> 0xa8
- 0x16 -> 0x68
- 0x17 -> 0xe8
- 0x18 -> 0x18
- 0x19 -> 0x98
- 0x1a -> 0x58
- 0x1b -> 0xd8
- 0x1c -> 0x38
- 0x1d -> 0xb8
- 0x1e -> 0x78
- 0x1f -> 0xf8
- 0x20 -> 0x04
- 0x21 -> 0x84
- 0x22 -> 0x44
- 0x23 -> 0xc4
- 0x24 -> 0x24
- 0x25 -> 0xa4
- 0x26 -> 0x64
- 0x27 -> 0xe4
- 0x28 -> 0x14
- 0x29 -> 0x94
- 0x2a -> 0x54
- 0x2b -> 0xd4
- 0x2c -> 0x34
- 0x2d -> 0xb4
- 0x2e -> 0x74
- 0x2f -> 0xf4
- 0x30 -> 0x0c
- 0x31 -> 0x8c
- 0x32 -> 0x4c
- 0x33 -> 0xcc
- 0x34 -> 0x2c
- 0x35 -> 0xac
- 0x36 -> 0x6c
- 0x37 -> 0xec
- 0x38 -> 0x1c
- 0x39 -> 0x9c
- 0x3a -> 0x5c
- 0x3b -> 0xdc
- 0x3c -> 0x3c
- 0x3d -> 0xbc
- 0x3e -> 0x7c
- 0x3f -> 0xfc
- 0x40 -> 0x02
- 0x41 -> 0x82
- 0x42 -> 0x42
- 0x43 -> 0xc2
- 0x44 -> 0x22
- 0x45 -> 0xa2
- 0x46 -> 0x62
- 0x47 -> 0xe2
- 0x48 -> 0x12
- 0x49 -> 0x92
- 0x4a -> 0x52
- 0x4b -> 0xd2
- 0x4c -> 0x32
- 0x4d -> 0xb2
- 0x4e -> 0x72
- 0x4f -> 0xf2
- 0x50 -> 0x0a
- 0x51 -> 0x8a
- 0x52 -> 0x4a
- 0x53 -> 0xca
- 0x54 -> 0x2a
- 0x55 -> 0xaa
- 0x56 -> 0x6a
- 0x57 -> 0xea
- 0x58 -> 0x1a
- 0x59 -> 0x9a
- 0x5a -> 0x5a
- 0x5b -> 0xda
- 0x5c -> 0x3a
- 0x5d -> 0xba
- 0x5e -> 0x7a
- 0x5f -> 0xfa
- 0x60 -> 0x06
- 0x61 -> 0x86
- 0x62 -> 0x46
- 0x63 -> 0xc6
- 0x64 -> 0x26
- 0x65 -> 0xa6
- 0x66 -> 0x66
- 0x67 -> 0xe6
- 0x68 -> 0x16
- 0x69 -> 0x96
- 0x6a -> 0x56
- 0x6b -> 0xd6
- 0x6c -> 0x36
- 0x6d -> 0xb6
- 0x6e -> 0x76
- 0x6f -> 0xf6
- 0x70 -> 0x0e
- 0x71 -> 0x8e
- 0x72 -> 0x4e
- 0x73 -> 0xce
- 0x74 -> 0x2e
- 0x75 -> 0xae
- 0x76 -> 0x6e
- 0x77 -> 0xee
- 0x78 -> 0x1e
- 0x79 -> 0x9e
- 0x7a -> 0x5e
- 0x7b -> 0xde
- 0x7c -> 0x3e
- 0x7d -> 0xbe
- 0x7e -> 0x7e
- 0x7f -> 0xfe
- 0x80 -> 0x01
- 0x81 -> 0x81
- 0x82 -> 0x41
- 0x83 -> 0xc1
- 0x84 -> 0x21
- 0x85 -> 0xa1
- 0x86 -> 0x61
- 0x87 -> 0xe1
- 0x88 -> 0x11
- 0x89 -> 0x91
- 0x8a -> 0x51
- 0x8b -> 0xd1
- 0x8c -> 0x31
- 0x8d -> 0xb1
- 0x8e -> 0x71
- 0x8f -> 0xf1
- 0x90 -> 0x09
- 0x91 -> 0x89
- 0x92 -> 0x49
- 0x93 -> 0xc9
- 0x94 -> 0x29
- 0x95 -> 0xa9
- 0x96 -> 0x69
- 0x97 -> 0xe9
- 0x98 -> 0x19
- 0x99 -> 0x99
- 0x9a -> 0x59
- 0x9b -> 0xd9
- 0x9c -> 0x39
- 0x9d -> 0xb9
- 0x9e -> 0x79
- 0x9f -> 0xf9
- 0xa0 -> 0x05
- 0xa1 -> 0x85
- 0xa2 -> 0x45
- 0xa3 -> 0xc5
- 0xa4 -> 0x25
- 0xa5 -> 0xa5
- 0xa6 -> 0x65
- 0xa7 -> 0xe5
- 0xa8 -> 0x15
- 0xa9 -> 0x95
- 0xaa -> 0x55
- 0xab -> 0xd5
- 0xac -> 0x35
- 0xad -> 0xb5
- 0xae -> 0x75
- 0xaf -> 0xf5
- 0xb0 -> 0x0d
- 0xb1 -> 0x8d
- 0xb2 -> 0x4d
- 0xb3 -> 0xcd
- 0xb4 -> 0x2d
- 0xb5 -> 0xad
- 0xb6 -> 0x6d
- 0xb7 -> 0xed
- 0xb8 -> 0x1d
- 0xb9 -> 0x9d
- 0xba -> 0x5d
- 0xbb -> 0xdd
- 0xbc -> 0x3d
- 0xbd -> 0xbd
- 0xbe -> 0x7d
- 0xbf -> 0xfd
- 0xc0 -> 0x03
- 0xc1 -> 0x83
- 0xc2 -> 0x43
- 0xc3 -> 0xc3
- 0xc4 -> 0x23
- 0xc5 -> 0xa3
- 0xc6 -> 0x63
- 0xc7 -> 0xe3
- 0xc8 -> 0x13
- 0xc9 -> 0x93
- 0xca -> 0x53
- 0xcb -> 0xd3
- 0xcc -> 0x33
- 0xcd -> 0xb3
- 0xce -> 0x73
- 0xcf -> 0xf3
- 0xd0 -> 0x0b
- 0xd1 -> 0x8b
- 0xd2 -> 0x4b
- 0xd3 -> 0xcb
- 0xd4 -> 0x2b
- 0xd5 -> 0xab
- 0xd6 -> 0x6b
- 0xd7 -> 0xeb
- 0xd8 -> 0x1b
- 0xd9 -> 0x9b
- 0xda -> 0x5b
- 0xdb -> 0xdb
- 0xdc -> 0x3b
- 0xdd -> 0xbb
- 0xde -> 0x7b
- 0xdf -> 0xfb
- 0xe0 -> 0x07
- 0xe1 -> 0x87
- 0xe2 -> 0x47
- 0xe3 -> 0xc7
- 0xe4 -> 0x27
- 0xe5 -> 0xa7
- 0xe6 -> 0x67
- 0xe7 -> 0xe7
- 0xe8 -> 0x17
- 0xe9 -> 0x97
- 0xea -> 0x57
- 0xeb -> 0xd7
- 0xec -> 0x37
- 0xed -> 0xb7
- 0xee -> 0x77
- 0xef -> 0xf7
- 0xf0 -> 0x0f
- 0xf1 -> 0x8f
- 0xf2 -> 0x4f
- 0xf3 -> 0xcf
- 0xf4 -> 0x2f
- 0xf5 -> 0xaf
- 0xf6 -> 0x6f
- 0xf7 -> 0xef
- 0xf8 -> 0x1f
- 0xf9 -> 0x9f
- 0xfa -> 0x5f
- 0xfb -> 0xdf
- 0xfc -> 0x3f
- 0xfd -> 0xbf
- 0xfe -> 0x7f
- 0xff -> 0xff
- ```
- ### Non-golfed Example in C
- ```
- #include <stdio.h>
- #include <stdint.h>
- uint8_t reverseByte(uint8_t byte)
- {
- uint8_t result=0;
- for(unsigned i=0; i<8; i++ )
- {
- result = (result<<1) | (byte&1);
- byte = byte>>1;
- }
- return result;
- }
- int main(void)
- {
- int c = getchar();
- if( c>= 0 )
- {
- putchar( reverseByte(c) );
- }
- }
- ```
- Simple challenge: Read a byte, swap bit 7 with 0, 6 with 1, 5 with 2 and 4 with 3 and then output the byte. For example the byte `0b1001'1100` would turn into `0b0011'1001`.
- Rules:
- - Shortest code wins
- - A byte has at least 8 bit. If it makes things easier, you can use a bigger byte size. The size should be independent of the value.
- - Reverse at least 1 byte. If it makes it easier, you can reverse more.
- - The byte to reverse is the only required input. But if it makes it easier, a input for the byte size and a input for the number of bytes to reverse can be required.
- - You can choose the input and output format, but both have to be the same.
- - If you choose a input format where multiple digits may needed, in a form which your language doesn't give a fixed size, for example a ASCII string or a list, then you have to support inputs that don't have leading 0s and inputs that do have leading 0s. For example, if you choose to use a binary number written in ASCII, the input maybe only `"1010"` (or `"0b1010"` if you prefer) and you would have to output either `"01010000"` or `"1010000"` (assuming you don't want to use digit separators nor a prefix and use 8 bit bytes).
- ### Test cases
- ```
- Input Byte -> Output Byte
- 0x00 -> 0x00
- 0x01 -> 0x80
- 0x02 -> 0x40
- 0x03 -> 0xc0
- 0x04 -> 0x20
- 0x05 -> 0xa0
- 0x06 -> 0x60
- 0x07 -> 0xe0
- 0x08 -> 0x10
- 0x09 -> 0x90
- 0x0a -> 0x50
- 0x0b -> 0xd0
- 0x0c -> 0x30
- 0x0d -> 0xb0
- 0x0e -> 0x70
- 0x0f -> 0xf0
- 0x10 -> 0x08
- 0x11 -> 0x88
- 0x12 -> 0x48
- 0x13 -> 0xc8
- 0x14 -> 0x28
- 0x15 -> 0xa8
- 0x16 -> 0x68
- 0x17 -> 0xe8
- 0x18 -> 0x18
- 0x19 -> 0x98
- 0x1a -> 0x58
- 0x1b -> 0xd8
- 0x1c -> 0x38
- 0x1d -> 0xb8
- 0x1e -> 0x78
- 0x1f -> 0xf8
- 0x20 -> 0x04
- 0x21 -> 0x84
- 0x22 -> 0x44
- 0x23 -> 0xc4
- 0x24 -> 0x24
- 0x25 -> 0xa4
- 0x26 -> 0x64
- 0x27 -> 0xe4
- 0x28 -> 0x14
- 0x29 -> 0x94
- 0x2a -> 0x54
- 0x2b -> 0xd4
- 0x2c -> 0x34
- 0x2d -> 0xb4
- 0x2e -> 0x74
- 0x2f -> 0xf4
- 0x30 -> 0x0c
- 0x31 -> 0x8c
- 0x32 -> 0x4c
- 0x33 -> 0xcc
- 0x34 -> 0x2c
- 0x35 -> 0xac
- 0x36 -> 0x6c
- 0x37 -> 0xec
- 0x38 -> 0x1c
- 0x39 -> 0x9c
- 0x3a -> 0x5c
- 0x3b -> 0xdc
- 0x3c -> 0x3c
- 0x3d -> 0xbc
- 0x3e -> 0x7c
- 0x3f -> 0xfc
- 0x40 -> 0x02
- 0x41 -> 0x82
- 0x42 -> 0x42
- 0x43 -> 0xc2
- 0x44 -> 0x22
- 0x45 -> 0xa2
- 0x46 -> 0x62
- 0x47 -> 0xe2
- 0x48 -> 0x12
- 0x49 -> 0x92
- 0x4a -> 0x52
- 0x4b -> 0xd2
- 0x4c -> 0x32
- 0x4d -> 0xb2
- 0x4e -> 0x72
- 0x4f -> 0xf2
- 0x50 -> 0x0a
- 0x51 -> 0x8a
- 0x52 -> 0x4a
- 0x53 -> 0xca
- 0x54 -> 0x2a
- 0x55 -> 0xaa
- 0x56 -> 0x6a
- 0x57 -> 0xea
- 0x58 -> 0x1a
- 0x59 -> 0x9a
- 0x5a -> 0x5a
- 0x5b -> 0xda
- 0x5c -> 0x3a
- 0x5d -> 0xba
- 0x5e -> 0x7a
- 0x5f -> 0xfa
- 0x60 -> 0x06
- 0x61 -> 0x86
- 0x62 -> 0x46
- 0x63 -> 0xc6
- 0x64 -> 0x26
- 0x65 -> 0xa6
- 0x66 -> 0x66
- 0x67 -> 0xe6
- 0x68 -> 0x16
- 0x69 -> 0x96
- 0x6a -> 0x56
- 0x6b -> 0xd6
- 0x6c -> 0x36
- 0x6d -> 0xb6
- 0x6e -> 0x76
- 0x6f -> 0xf6
- 0x70 -> 0x0e
- 0x71 -> 0x8e
- 0x72 -> 0x4e
- 0x73 -> 0xce
- 0x74 -> 0x2e
- 0x75 -> 0xae
- 0x76 -> 0x6e
- 0x77 -> 0xee
- 0x78 -> 0x1e
- 0x79 -> 0x9e
- 0x7a -> 0x5e
- 0x7b -> 0xde
- 0x7c -> 0x3e
- 0x7d -> 0xbe
- 0x7e -> 0x7e
- 0x7f -> 0xfe
- 0x80 -> 0x01
- 0x81 -> 0x81
- 0x82 -> 0x41
- 0x83 -> 0xc1
- 0x84 -> 0x21
- 0x85 -> 0xa1
- 0x86 -> 0x61
- 0x87 -> 0xe1
- 0x88 -> 0x11
- 0x89 -> 0x91
- 0x8a -> 0x51
- 0x8b -> 0xd1
- 0x8c -> 0x31
- 0x8d -> 0xb1
- 0x8e -> 0x71
- 0x8f -> 0xf1
- 0x90 -> 0x09
- 0x91 -> 0x89
- 0x92 -> 0x49
- 0x93 -> 0xc9
- 0x94 -> 0x29
- 0x95 -> 0xa9
- 0x96 -> 0x69
- 0x97 -> 0xe9
- 0x98 -> 0x19
- 0x99 -> 0x99
- 0x9a -> 0x59
- 0x9b -> 0xd9
- 0x9c -> 0x39
- 0x9d -> 0xb9
- 0x9e -> 0x79
- 0x9f -> 0xf9
- 0xa0 -> 0x05
- 0xa1 -> 0x85
- 0xa2 -> 0x45
- 0xa3 -> 0xc5
- 0xa4 -> 0x25
- 0xa5 -> 0xa5
- 0xa6 -> 0x65
- 0xa7 -> 0xe5
- 0xa8 -> 0x15
- 0xa9 -> 0x95
- 0xaa -> 0x55
- 0xab -> 0xd5
- 0xac -> 0x35
- 0xad -> 0xb5
- 0xae -> 0x75
- 0xaf -> 0xf5
- 0xb0 -> 0x0d
- 0xb1 -> 0x8d
- 0xb2 -> 0x4d
- 0xb3 -> 0xcd
- 0xb4 -> 0x2d
- 0xb5 -> 0xad
- 0xb6 -> 0x6d
- 0xb7 -> 0xed
- 0xb8 -> 0x1d
- 0xb9 -> 0x9d
- 0xba -> 0x5d
- 0xbb -> 0xdd
- 0xbc -> 0x3d
- 0xbd -> 0xbd
- 0xbe -> 0x7d
- 0xbf -> 0xfd
- 0xc0 -> 0x03
- 0xc1 -> 0x83
- 0xc2 -> 0x43
- 0xc3 -> 0xc3
- 0xc4 -> 0x23
- 0xc5 -> 0xa3
- 0xc6 -> 0x63
- 0xc7 -> 0xe3
- 0xc8 -> 0x13
- 0xc9 -> 0x93
- 0xca -> 0x53
- 0xcb -> 0xd3
- 0xcc -> 0x33
- 0xcd -> 0xb3
- 0xce -> 0x73
- 0xcf -> 0xf3
- 0xd0 -> 0x0b
- 0xd1 -> 0x8b
- 0xd2 -> 0x4b
- 0xd3 -> 0xcb
- 0xd4 -> 0x2b
- 0xd5 -> 0xab
- 0xd6 -> 0x6b
- 0xd7 -> 0xeb
- 0xd8 -> 0x1b
- 0xd9 -> 0x9b
- 0xda -> 0x5b
- 0xdb -> 0xdb
- 0xdc -> 0x3b
- 0xdd -> 0xbb
- 0xde -> 0x7b
- 0xdf -> 0xfb
- 0xe0 -> 0x07
- 0xe1 -> 0x87
- 0xe2 -> 0x47
- 0xe3 -> 0xc7
- 0xe4 -> 0x27
- 0xe5 -> 0xa7
- 0xe6 -> 0x67
- 0xe7 -> 0xe7
- 0xe8 -> 0x17
- 0xe9 -> 0x97
- 0xea -> 0x57
- 0xeb -> 0xd7
- 0xec -> 0x37
- 0xed -> 0xb7
- 0xee -> 0x77
- 0xef -> 0xf7
- 0xf0 -> 0x0f
- 0xf1 -> 0x8f
- 0xf2 -> 0x4f
- 0xf3 -> 0xcf
- 0xf4 -> 0x2f
- 0xf5 -> 0xaf
- 0xf6 -> 0x6f
- 0xf7 -> 0xef
- 0xf8 -> 0x1f
- 0xf9 -> 0x9f
- 0xfa -> 0x5f
- 0xfb -> 0xdf
- 0xfc -> 0x3f
- 0xfd -> 0xbf
- 0xfe -> 0x7f
- 0xff -> 0xff
- ```
- ### Non-golfed Example in C
- ```
- #include <stdio.h>
- #include <stdint.h>
- uint8_t reverseByte(uint8_t byte)
- {
- uint8_t result=0;
- for(unsigned i=0; i<8; i++ )
- {
- result = (result<<1) | (byte&1);
- byte = byte>>1;
- }
- return result;
- }
- int main(void)
- {
- int c = getchar();
- if( c>= 0 )
- {
- putchar( reverseByte(c) );
- }
- }
- ```
#2: Post edited
- Simple challenge: Read a byte, swap bit 7 with 0, 6 with 1, 5 with 2 and 4 with 3 and then output the byte. For example the byte `0b1001'1100` would turn into `0b0011'1001`.
- Rules:
- - Shortest code wins
- - A byte has at least 8 bit. If it makes things easier, you can use a bigger byte size. The size should be independent of the value.
- - Reverse at least 1 byte. If it makes it easier, you can reverse more.
- - The byte to reverse is the only required input. But if it makes it easier, a input for the byte size and a input for the number of bytes to reverse can be required.
- ### Test cases
- ```
- Input Byte -> Output Byte
- 0x00 -> 0x00
- 0x01 -> 0x80
- 0x02 -> 0x40
- 0x03 -> 0xc0
- 0x04 -> 0x20
- 0x05 -> 0xa0
- 0x06 -> 0x60
- 0x07 -> 0xe0
- 0x08 -> 0x10
- 0x09 -> 0x90
- 0x0a -> 0x50
- 0x0b -> 0xd0
- 0x0c -> 0x30
- 0x0d -> 0xb0
- 0x0e -> 0x70
- 0x0f -> 0xf0
- 0x10 -> 0x08
- 0x11 -> 0x88
- 0x12 -> 0x48
- 0x13 -> 0xc8
- 0x14 -> 0x28
- 0x15 -> 0xa8
- 0x16 -> 0x68
- 0x17 -> 0xe8
- 0x18 -> 0x18
- 0x19 -> 0x98
- 0x1a -> 0x58
- 0x1b -> 0xd8
- 0x1c -> 0x38
- 0x1d -> 0xb8
- 0x1e -> 0x78
- 0x1f -> 0xf8
- 0x20 -> 0x04
- 0x21 -> 0x84
- 0x22 -> 0x44
- 0x23 -> 0xc4
- 0x24 -> 0x24
- 0x25 -> 0xa4
- 0x26 -> 0x64
- 0x27 -> 0xe4
- 0x28 -> 0x14
- 0x29 -> 0x94
- 0x2a -> 0x54
- 0x2b -> 0xd4
- 0x2c -> 0x34
- 0x2d -> 0xb4
- 0x2e -> 0x74
- 0x2f -> 0xf4
- 0x30 -> 0x0c
- 0x31 -> 0x8c
- 0x32 -> 0x4c
- 0x33 -> 0xcc
- 0x34 -> 0x2c
- 0x35 -> 0xac
- 0x36 -> 0x6c
- 0x37 -> 0xec
- 0x38 -> 0x1c
- 0x39 -> 0x9c
- 0x3a -> 0x5c
- 0x3b -> 0xdc
- 0x3c -> 0x3c
- 0x3d -> 0xbc
- 0x3e -> 0x7c
- 0x3f -> 0xfc
- 0x40 -> 0x02
- 0x41 -> 0x82
- 0x42 -> 0x42
- 0x43 -> 0xc2
- 0x44 -> 0x22
- 0x45 -> 0xa2
- 0x46 -> 0x62
- 0x47 -> 0xe2
- 0x48 -> 0x12
- 0x49 -> 0x92
- 0x4a -> 0x52
- 0x4b -> 0xd2
- 0x4c -> 0x32
- 0x4d -> 0xb2
- 0x4e -> 0x72
- 0x4f -> 0xf2
- 0x50 -> 0x0a
- 0x51 -> 0x8a
- 0x52 -> 0x4a
- 0x53 -> 0xca
- 0x54 -> 0x2a
- 0x55 -> 0xaa
- 0x56 -> 0x6a
- 0x57 -> 0xea
- 0x58 -> 0x1a
- 0x59 -> 0x9a
- 0x5a -> 0x5a
- 0x5b -> 0xda
- 0x5c -> 0x3a
- 0x5d -> 0xba
- 0x5e -> 0x7a
- 0x5f -> 0xfa
- 0x60 -> 0x06
- 0x61 -> 0x86
- 0x62 -> 0x46
- 0x63 -> 0xc6
- 0x64 -> 0x26
- 0x65 -> 0xa6
- 0x66 -> 0x66
- 0x67 -> 0xe6
- 0x68 -> 0x16
- 0x69 -> 0x96
- 0x6a -> 0x56
- 0x6b -> 0xd6
- 0x6c -> 0x36
- 0x6d -> 0xb6
- 0x6e -> 0x76
- 0x6f -> 0xf6
- 0x70 -> 0x0e
- 0x71 -> 0x8e
- 0x72 -> 0x4e
- 0x73 -> 0xce
- 0x74 -> 0x2e
- 0x75 -> 0xae
- 0x76 -> 0x6e
- 0x77 -> 0xee
- 0x78 -> 0x1e
- 0x79 -> 0x9e
- 0x7a -> 0x5e
- 0x7b -> 0xde
- 0x7c -> 0x3e
- 0x7d -> 0xbe
- 0x7e -> 0x7e
- 0x7f -> 0xfe
- 0x80 -> 0x01
- 0x81 -> 0x81
- 0x82 -> 0x41
- 0x83 -> 0xc1
- 0x84 -> 0x21
- 0x85 -> 0xa1
- 0x86 -> 0x61
- 0x87 -> 0xe1
- 0x88 -> 0x11
- 0x89 -> 0x91
- 0x8a -> 0x51
- 0x8b -> 0xd1
- 0x8c -> 0x31
- 0x8d -> 0xb1
- 0x8e -> 0x71
- 0x8f -> 0xf1
- 0x90 -> 0x09
- 0x91 -> 0x89
- 0x92 -> 0x49
- 0x93 -> 0xc9
- 0x94 -> 0x29
- 0x95 -> 0xa9
- 0x96 -> 0x69
- 0x97 -> 0xe9
- 0x98 -> 0x19
- 0x99 -> 0x99
- 0x9a -> 0x59
- 0x9b -> 0xd9
- 0x9c -> 0x39
- 0x9d -> 0xb9
- 0x9e -> 0x79
- 0x9f -> 0xf9
- 0xa0 -> 0x05
- 0xa1 -> 0x85
- 0xa2 -> 0x45
- 0xa3 -> 0xc5
- 0xa4 -> 0x25
- 0xa5 -> 0xa5
- 0xa6 -> 0x65
- 0xa7 -> 0xe5
- 0xa8 -> 0x15
- 0xa9 -> 0x95
- 0xaa -> 0x55
- 0xab -> 0xd5
- 0xac -> 0x35
- 0xad -> 0xb5
- 0xae -> 0x75
- 0xaf -> 0xf5
- 0xb0 -> 0x0d
- 0xb1 -> 0x8d
- 0xb2 -> 0x4d
- 0xb3 -> 0xcd
- 0xb4 -> 0x2d
- 0xb5 -> 0xad
- 0xb6 -> 0x6d
- 0xb7 -> 0xed
- 0xb8 -> 0x1d
- 0xb9 -> 0x9d
- 0xba -> 0x5d
- 0xbb -> 0xdd
- 0xbc -> 0x3d
- 0xbd -> 0xbd
- 0xbe -> 0x7d
- 0xbf -> 0xfd
- 0xc0 -> 0x03
- 0xc1 -> 0x83
- 0xc2 -> 0x43
- 0xc3 -> 0xc3
- 0xc4 -> 0x23
- 0xc5 -> 0xa3
- 0xc6 -> 0x63
- 0xc7 -> 0xe3
- 0xc8 -> 0x13
- 0xc9 -> 0x93
- 0xca -> 0x53
- 0xcb -> 0xd3
- 0xcc -> 0x33
- 0xcd -> 0xb3
- 0xce -> 0x73
- 0xcf -> 0xf3
- 0xd0 -> 0x0b
- 0xd1 -> 0x8b
- 0xd2 -> 0x4b
- 0xd3 -> 0xcb
- 0xd4 -> 0x2b
- 0xd5 -> 0xab
- 0xd6 -> 0x6b
- 0xd7 -> 0xeb
- 0xd8 -> 0x1b
- 0xd9 -> 0x9b
- 0xda -> 0x5b
- 0xdb -> 0xdb
- 0xdc -> 0x3b
- 0xdd -> 0xbb
- 0xde -> 0x7b
- 0xdf -> 0xfb
- 0xe0 -> 0x07
- 0xe1 -> 0x87
- 0xe2 -> 0x47
- 0xe3 -> 0xc7
- 0xe4 -> 0x27
- 0xe5 -> 0xa7
- 0xe6 -> 0x67
- 0xe7 -> 0xe7
- 0xe8 -> 0x17
- 0xe9 -> 0x97
- 0xea -> 0x57
- 0xeb -> 0xd7
- 0xec -> 0x37
- 0xed -> 0xb7
- 0xee -> 0x77
- 0xef -> 0xf7
- 0xf0 -> 0x0f
- 0xf1 -> 0x8f
- 0xf2 -> 0x4f
- 0xf3 -> 0xcf
- 0xf4 -> 0x2f
- 0xf5 -> 0xaf
- 0xf6 -> 0x6f
- 0xf7 -> 0xef
- 0xf8 -> 0x1f
- 0xf9 -> 0x9f
- 0xfa -> 0x5f
- 0xfb -> 0xdf
- 0xfc -> 0x3f
- 0xfd -> 0xbf
- 0xfe -> 0x7f
- 0xff -> 0xff
- ```
- ### Non-golfed Example in C
- ```
- #include <stdio.h>
- #include <stdint.h>
- uint8_t reverseByte(uint8_t byte)
- {
- uint8_t result=0;
- for(unsigned i=0; i<8; i++ )
- {
- result = (result<<1) | (byte&1);
- byte = byte>>1;
- }
- return result;
- }
- int main(void)
- {
- int c = getchar();
- if( c>= 0 )
- {
- putchar( reverseByte(c) );
- }
- }
- ```
- Simple challenge: Read a byte, swap bit 7 with 0, 6 with 1, 5 with 2 and 4 with 3 and then output the byte. For example the byte `0b1001'1100` would turn into `0b0011'1001`.
- Rules:
- - Shortest code wins
- - A byte has at least 8 bit. If it makes things easier, you can use a bigger byte size. The size should be independent of the value.
- - Reverse at least 1 byte. If it makes it easier, you can reverse more.
- - The byte to reverse is the only required input. But if it makes it easier, a input for the byte size and a input for the number of bytes to reverse can be required.
- - You can choose the input and output format, but both have to be the same and if the input is either a list of digits or a written number, the code has to support inputs that don't have leading 0's (i.e. if you choose to use a binary number written in ASCII, the input maybe only `"1010"` and you would have to output either `"01010000"` or `"1010000"`)
- ### Test cases
- ```
- Input Byte -> Output Byte
- 0x00 -> 0x00
- 0x01 -> 0x80
- 0x02 -> 0x40
- 0x03 -> 0xc0
- 0x04 -> 0x20
- 0x05 -> 0xa0
- 0x06 -> 0x60
- 0x07 -> 0xe0
- 0x08 -> 0x10
- 0x09 -> 0x90
- 0x0a -> 0x50
- 0x0b -> 0xd0
- 0x0c -> 0x30
- 0x0d -> 0xb0
- 0x0e -> 0x70
- 0x0f -> 0xf0
- 0x10 -> 0x08
- 0x11 -> 0x88
- 0x12 -> 0x48
- 0x13 -> 0xc8
- 0x14 -> 0x28
- 0x15 -> 0xa8
- 0x16 -> 0x68
- 0x17 -> 0xe8
- 0x18 -> 0x18
- 0x19 -> 0x98
- 0x1a -> 0x58
- 0x1b -> 0xd8
- 0x1c -> 0x38
- 0x1d -> 0xb8
- 0x1e -> 0x78
- 0x1f -> 0xf8
- 0x20 -> 0x04
- 0x21 -> 0x84
- 0x22 -> 0x44
- 0x23 -> 0xc4
- 0x24 -> 0x24
- 0x25 -> 0xa4
- 0x26 -> 0x64
- 0x27 -> 0xe4
- 0x28 -> 0x14
- 0x29 -> 0x94
- 0x2a -> 0x54
- 0x2b -> 0xd4
- 0x2c -> 0x34
- 0x2d -> 0xb4
- 0x2e -> 0x74
- 0x2f -> 0xf4
- 0x30 -> 0x0c
- 0x31 -> 0x8c
- 0x32 -> 0x4c
- 0x33 -> 0xcc
- 0x34 -> 0x2c
- 0x35 -> 0xac
- 0x36 -> 0x6c
- 0x37 -> 0xec
- 0x38 -> 0x1c
- 0x39 -> 0x9c
- 0x3a -> 0x5c
- 0x3b -> 0xdc
- 0x3c -> 0x3c
- 0x3d -> 0xbc
- 0x3e -> 0x7c
- 0x3f -> 0xfc
- 0x40 -> 0x02
- 0x41 -> 0x82
- 0x42 -> 0x42
- 0x43 -> 0xc2
- 0x44 -> 0x22
- 0x45 -> 0xa2
- 0x46 -> 0x62
- 0x47 -> 0xe2
- 0x48 -> 0x12
- 0x49 -> 0x92
- 0x4a -> 0x52
- 0x4b -> 0xd2
- 0x4c -> 0x32
- 0x4d -> 0xb2
- 0x4e -> 0x72
- 0x4f -> 0xf2
- 0x50 -> 0x0a
- 0x51 -> 0x8a
- 0x52 -> 0x4a
- 0x53 -> 0xca
- 0x54 -> 0x2a
- 0x55 -> 0xaa
- 0x56 -> 0x6a
- 0x57 -> 0xea
- 0x58 -> 0x1a
- 0x59 -> 0x9a
- 0x5a -> 0x5a
- 0x5b -> 0xda
- 0x5c -> 0x3a
- 0x5d -> 0xba
- 0x5e -> 0x7a
- 0x5f -> 0xfa
- 0x60 -> 0x06
- 0x61 -> 0x86
- 0x62 -> 0x46
- 0x63 -> 0xc6
- 0x64 -> 0x26
- 0x65 -> 0xa6
- 0x66 -> 0x66
- 0x67 -> 0xe6
- 0x68 -> 0x16
- 0x69 -> 0x96
- 0x6a -> 0x56
- 0x6b -> 0xd6
- 0x6c -> 0x36
- 0x6d -> 0xb6
- 0x6e -> 0x76
- 0x6f -> 0xf6
- 0x70 -> 0x0e
- 0x71 -> 0x8e
- 0x72 -> 0x4e
- 0x73 -> 0xce
- 0x74 -> 0x2e
- 0x75 -> 0xae
- 0x76 -> 0x6e
- 0x77 -> 0xee
- 0x78 -> 0x1e
- 0x79 -> 0x9e
- 0x7a -> 0x5e
- 0x7b -> 0xde
- 0x7c -> 0x3e
- 0x7d -> 0xbe
- 0x7e -> 0x7e
- 0x7f -> 0xfe
- 0x80 -> 0x01
- 0x81 -> 0x81
- 0x82 -> 0x41
- 0x83 -> 0xc1
- 0x84 -> 0x21
- 0x85 -> 0xa1
- 0x86 -> 0x61
- 0x87 -> 0xe1
- 0x88 -> 0x11
- 0x89 -> 0x91
- 0x8a -> 0x51
- 0x8b -> 0xd1
- 0x8c -> 0x31
- 0x8d -> 0xb1
- 0x8e -> 0x71
- 0x8f -> 0xf1
- 0x90 -> 0x09
- 0x91 -> 0x89
- 0x92 -> 0x49
- 0x93 -> 0xc9
- 0x94 -> 0x29
- 0x95 -> 0xa9
- 0x96 -> 0x69
- 0x97 -> 0xe9
- 0x98 -> 0x19
- 0x99 -> 0x99
- 0x9a -> 0x59
- 0x9b -> 0xd9
- 0x9c -> 0x39
- 0x9d -> 0xb9
- 0x9e -> 0x79
- 0x9f -> 0xf9
- 0xa0 -> 0x05
- 0xa1 -> 0x85
- 0xa2 -> 0x45
- 0xa3 -> 0xc5
- 0xa4 -> 0x25
- 0xa5 -> 0xa5
- 0xa6 -> 0x65
- 0xa7 -> 0xe5
- 0xa8 -> 0x15
- 0xa9 -> 0x95
- 0xaa -> 0x55
- 0xab -> 0xd5
- 0xac -> 0x35
- 0xad -> 0xb5
- 0xae -> 0x75
- 0xaf -> 0xf5
- 0xb0 -> 0x0d
- 0xb1 -> 0x8d
- 0xb2 -> 0x4d
- 0xb3 -> 0xcd
- 0xb4 -> 0x2d
- 0xb5 -> 0xad
- 0xb6 -> 0x6d
- 0xb7 -> 0xed
- 0xb8 -> 0x1d
- 0xb9 -> 0x9d
- 0xba -> 0x5d
- 0xbb -> 0xdd
- 0xbc -> 0x3d
- 0xbd -> 0xbd
- 0xbe -> 0x7d
- 0xbf -> 0xfd
- 0xc0 -> 0x03
- 0xc1 -> 0x83
- 0xc2 -> 0x43
- 0xc3 -> 0xc3
- 0xc4 -> 0x23
- 0xc5 -> 0xa3
- 0xc6 -> 0x63
- 0xc7 -> 0xe3
- 0xc8 -> 0x13
- 0xc9 -> 0x93
- 0xca -> 0x53
- 0xcb -> 0xd3
- 0xcc -> 0x33
- 0xcd -> 0xb3
- 0xce -> 0x73
- 0xcf -> 0xf3
- 0xd0 -> 0x0b
- 0xd1 -> 0x8b
- 0xd2 -> 0x4b
- 0xd3 -> 0xcb
- 0xd4 -> 0x2b
- 0xd5 -> 0xab
- 0xd6 -> 0x6b
- 0xd7 -> 0xeb
- 0xd8 -> 0x1b
- 0xd9 -> 0x9b
- 0xda -> 0x5b
- 0xdb -> 0xdb
- 0xdc -> 0x3b
- 0xdd -> 0xbb
- 0xde -> 0x7b
- 0xdf -> 0xfb
- 0xe0 -> 0x07
- 0xe1 -> 0x87
- 0xe2 -> 0x47
- 0xe3 -> 0xc7
- 0xe4 -> 0x27
- 0xe5 -> 0xa7
- 0xe6 -> 0x67
- 0xe7 -> 0xe7
- 0xe8 -> 0x17
- 0xe9 -> 0x97
- 0xea -> 0x57
- 0xeb -> 0xd7
- 0xec -> 0x37
- 0xed -> 0xb7
- 0xee -> 0x77
- 0xef -> 0xf7
- 0xf0 -> 0x0f
- 0xf1 -> 0x8f
- 0xf2 -> 0x4f
- 0xf3 -> 0xcf
- 0xf4 -> 0x2f
- 0xf5 -> 0xaf
- 0xf6 -> 0x6f
- 0xf7 -> 0xef
- 0xf8 -> 0x1f
- 0xf9 -> 0x9f
- 0xfa -> 0x5f
- 0xfb -> 0xdf
- 0xfc -> 0x3f
- 0xfd -> 0xbf
- 0xfe -> 0x7f
- 0xff -> 0xff
- ```
- ### Non-golfed Example in C
- ```
- #include <stdio.h>
- #include <stdint.h>
- uint8_t reverseByte(uint8_t byte)
- {
- uint8_t result=0;
- for(unsigned i=0; i<8; i++ )
- {
- result = (result<<1) | (byte&1);
- byte = byte>>1;
- }
- return result;
- }
- int main(void)
- {
- int c = getchar();
- if( c>= 0 )
- {
- putchar( reverseByte(c) );
- }
- }
- ```
#1: Initial revision
Reverse the bits in a Byte
Simple challenge: Read a byte, swap bit 7 with 0, 6 with 1, 5 with 2 and 4 with 3 and then output the byte. For example the byte `0b1001'1100` would turn into `0b0011'1001`.
Rules:
- Shortest code wins
- A byte has at least 8 bit. If it makes things easier, you can use a bigger byte size. The size should be independent of the value.
- Reverse at least 1 byte. If it makes it easier, you can reverse more.
- The byte to reverse is the only required input. But if it makes it easier, a input for the byte size and a input for the number of bytes to reverse can be required.
### Test cases
```
Input Byte -> Output Byte
0x00 -> 0x00
0x01 -> 0x80
0x02 -> 0x40
0x03 -> 0xc0
0x04 -> 0x20
0x05 -> 0xa0
0x06 -> 0x60
0x07 -> 0xe0
0x08 -> 0x10
0x09 -> 0x90
0x0a -> 0x50
0x0b -> 0xd0
0x0c -> 0x30
0x0d -> 0xb0
0x0e -> 0x70
0x0f -> 0xf0
0x10 -> 0x08
0x11 -> 0x88
0x12 -> 0x48
0x13 -> 0xc8
0x14 -> 0x28
0x15 -> 0xa8
0x16 -> 0x68
0x17 -> 0xe8
0x18 -> 0x18
0x19 -> 0x98
0x1a -> 0x58
0x1b -> 0xd8
0x1c -> 0x38
0x1d -> 0xb8
0x1e -> 0x78
0x1f -> 0xf8
0x20 -> 0x04
0x21 -> 0x84
0x22 -> 0x44
0x23 -> 0xc4
0x24 -> 0x24
0x25 -> 0xa4
0x26 -> 0x64
0x27 -> 0xe4
0x28 -> 0x14
0x29 -> 0x94
0x2a -> 0x54
0x2b -> 0xd4
0x2c -> 0x34
0x2d -> 0xb4
0x2e -> 0x74
0x2f -> 0xf4
0x30 -> 0x0c
0x31 -> 0x8c
0x32 -> 0x4c
0x33 -> 0xcc
0x34 -> 0x2c
0x35 -> 0xac
0x36 -> 0x6c
0x37 -> 0xec
0x38 -> 0x1c
0x39 -> 0x9c
0x3a -> 0x5c
0x3b -> 0xdc
0x3c -> 0x3c
0x3d -> 0xbc
0x3e -> 0x7c
0x3f -> 0xfc
0x40 -> 0x02
0x41 -> 0x82
0x42 -> 0x42
0x43 -> 0xc2
0x44 -> 0x22
0x45 -> 0xa2
0x46 -> 0x62
0x47 -> 0xe2
0x48 -> 0x12
0x49 -> 0x92
0x4a -> 0x52
0x4b -> 0xd2
0x4c -> 0x32
0x4d -> 0xb2
0x4e -> 0x72
0x4f -> 0xf2
0x50 -> 0x0a
0x51 -> 0x8a
0x52 -> 0x4a
0x53 -> 0xca
0x54 -> 0x2a
0x55 -> 0xaa
0x56 -> 0x6a
0x57 -> 0xea
0x58 -> 0x1a
0x59 -> 0x9a
0x5a -> 0x5a
0x5b -> 0xda
0x5c -> 0x3a
0x5d -> 0xba
0x5e -> 0x7a
0x5f -> 0xfa
0x60 -> 0x06
0x61 -> 0x86
0x62 -> 0x46
0x63 -> 0xc6
0x64 -> 0x26
0x65 -> 0xa6
0x66 -> 0x66
0x67 -> 0xe6
0x68 -> 0x16
0x69 -> 0x96
0x6a -> 0x56
0x6b -> 0xd6
0x6c -> 0x36
0x6d -> 0xb6
0x6e -> 0x76
0x6f -> 0xf6
0x70 -> 0x0e
0x71 -> 0x8e
0x72 -> 0x4e
0x73 -> 0xce
0x74 -> 0x2e
0x75 -> 0xae
0x76 -> 0x6e
0x77 -> 0xee
0x78 -> 0x1e
0x79 -> 0x9e
0x7a -> 0x5e
0x7b -> 0xde
0x7c -> 0x3e
0x7d -> 0xbe
0x7e -> 0x7e
0x7f -> 0xfe
0x80 -> 0x01
0x81 -> 0x81
0x82 -> 0x41
0x83 -> 0xc1
0x84 -> 0x21
0x85 -> 0xa1
0x86 -> 0x61
0x87 -> 0xe1
0x88 -> 0x11
0x89 -> 0x91
0x8a -> 0x51
0x8b -> 0xd1
0x8c -> 0x31
0x8d -> 0xb1
0x8e -> 0x71
0x8f -> 0xf1
0x90 -> 0x09
0x91 -> 0x89
0x92 -> 0x49
0x93 -> 0xc9
0x94 -> 0x29
0x95 -> 0xa9
0x96 -> 0x69
0x97 -> 0xe9
0x98 -> 0x19
0x99 -> 0x99
0x9a -> 0x59
0x9b -> 0xd9
0x9c -> 0x39
0x9d -> 0xb9
0x9e -> 0x79
0x9f -> 0xf9
0xa0 -> 0x05
0xa1 -> 0x85
0xa2 -> 0x45
0xa3 -> 0xc5
0xa4 -> 0x25
0xa5 -> 0xa5
0xa6 -> 0x65
0xa7 -> 0xe5
0xa8 -> 0x15
0xa9 -> 0x95
0xaa -> 0x55
0xab -> 0xd5
0xac -> 0x35
0xad -> 0xb5
0xae -> 0x75
0xaf -> 0xf5
0xb0 -> 0x0d
0xb1 -> 0x8d
0xb2 -> 0x4d
0xb3 -> 0xcd
0xb4 -> 0x2d
0xb5 -> 0xad
0xb6 -> 0x6d
0xb7 -> 0xed
0xb8 -> 0x1d
0xb9 -> 0x9d
0xba -> 0x5d
0xbb -> 0xdd
0xbc -> 0x3d
0xbd -> 0xbd
0xbe -> 0x7d
0xbf -> 0xfd
0xc0 -> 0x03
0xc1 -> 0x83
0xc2 -> 0x43
0xc3 -> 0xc3
0xc4 -> 0x23
0xc5 -> 0xa3
0xc6 -> 0x63
0xc7 -> 0xe3
0xc8 -> 0x13
0xc9 -> 0x93
0xca -> 0x53
0xcb -> 0xd3
0xcc -> 0x33
0xcd -> 0xb3
0xce -> 0x73
0xcf -> 0xf3
0xd0 -> 0x0b
0xd1 -> 0x8b
0xd2 -> 0x4b
0xd3 -> 0xcb
0xd4 -> 0x2b
0xd5 -> 0xab
0xd6 -> 0x6b
0xd7 -> 0xeb
0xd8 -> 0x1b
0xd9 -> 0x9b
0xda -> 0x5b
0xdb -> 0xdb
0xdc -> 0x3b
0xdd -> 0xbb
0xde -> 0x7b
0xdf -> 0xfb
0xe0 -> 0x07
0xe1 -> 0x87
0xe2 -> 0x47
0xe3 -> 0xc7
0xe4 -> 0x27
0xe5 -> 0xa7
0xe6 -> 0x67
0xe7 -> 0xe7
0xe8 -> 0x17
0xe9 -> 0x97
0xea -> 0x57
0xeb -> 0xd7
0xec -> 0x37
0xed -> 0xb7
0xee -> 0x77
0xef -> 0xf7
0xf0 -> 0x0f
0xf1 -> 0x8f
0xf2 -> 0x4f
0xf3 -> 0xcf
0xf4 -> 0x2f
0xf5 -> 0xaf
0xf6 -> 0x6f
0xf7 -> 0xef
0xf8 -> 0x1f
0xf9 -> 0x9f
0xfa -> 0x5f
0xfb -> 0xdf
0xfc -> 0x3f
0xfd -> 0xbf
0xfe -> 0x7f
0xff -> 0xff
```
### Non-golfed Example in C
```
#include <stdio.h>
#include <stdint.h>
uint8_t reverseByte(uint8_t byte)
{
uint8_t result=0;
for(unsigned i=0; i<8; i++ )
{
result = (result<<1) | (byte&1);
byte = byte>>1;
}
return result;
}
int main(void)
{
int c = getchar();
if( c>= 0 )
{
putchar( reverseByte(c) );
}
}
```
