חידת תיכנות

1אברהם

New member
../images/Emo35.gifחידת תיכנות

BYTE function(BYTE input) { int n; BYTE mask = 0x80, tmp; for( n=0; n<7; n++){ tmp=mask >> 1; if( input & mask ) input ^= tmp; mask=tmp; } return input; }​
מה עושה הפונקציה הזו ?
 

בסג

New member
../images/Emo101.gif פלט התכנית

אני לא יודע אם זה באמת עוזר... מצד ימין - INPUT, באמצע מספר הפלט בייצוג עשרוני, ומשמאל מספר הפלט בייצוג בינארי:
0 0 00000000 1 1 00000001 2 3 00000011 3 2 00000010 4 7 00000111 5 6 00000110 6 4 00000100 7 5 00000101 8 15 00001111 9 14 00001110 10 12 00001100 11 13 00001101 12 8 00001000 13 9 00001001 14 11 00001011 15 10 00001010 16 31 00011111 17 30 00011110 18 28 00011100 19 29 00011101 20 24 00011000 21 25 00011001 22 27 00011011 23 26 00011010 24 16 00010000 25 17 00010001 26 19 00010011 27 18 00010010 28 23 00010111 29 22 00010110 30 20 00010100 31 21 00010101 32 63 00111111 33 62 00111110 34 60 00111100 35 61 00111101 36 56 00111000 37 57 00111001 38 59 00111011 39 58 00111010 40 48 00110000 41 49 00110001 42 51 00110011 43 50 00110010 44 55 00110111 45 54 00110110 46 52 00110100 47 53 00110101 48 32 00100000 49 33 00100001 50 35 00100011 51 34 00100010 52 39 00100111 53 38 00100110 54 36 00100100 55 37 00100101 56 47 00101111 57 46 00101110 58 44 00101100 59 45 00101101 60 40 00101000 61 41 00101001 62 43 00101011 63 42 00101010 64 127 01111111 65 126 01111110 66 124 01111100 67 125 01111101 68 120 01111000 69 121 01111001 70 123 01111011 71 122 01111010 72 112 01110000 73 113 01110001 74 115 01110011 75 114 01110010 76 119 01110111 77 118 01110110 78 116 01110100 79 117 01110101 80 96 01100000 81 97 01100001 82 99 01100011 83 98 01100010 84 103 01100111 85 102 01100110 86 100 01100100 87 101 01100101 88 111 01101111 89 110 01101110 90 108 01101100 91 109 01101101 92 104 01101000 93 105 01101001 94 107 01101011 95 106 01101010 96 64 01000000 97 65 01000001 98 67 01000011 99 66 01000010 100 71 01000111 101 70 01000110 102 68 01000100 103 69 01000101 104 79 01001111 105 78 01001110 106 76 01001100 107 77 01001101 108 72 01001000 109 73 01001001 110 75 01001011 111 74 01001010 112 95 01011111 113 94 01011110 114 92 01011100 115 93 01011101 116 88 01011000 117 89 01011001 118 91 01011011 119 90 01011010 120 80 01010000 121 81 01010001 122 83 01010011 123 82 01010010 124 87 01010111 125 86 01010110 126 84 01010100 127 85 01010101 128 255 11111111 129 254 11111110 130 252 11111100 131 253 11111101 132 248 11111000 133 249 11111001 134 251 11111011 135 250 11111010 136 240 11110000 137 241 11110001 138 243 11110011 139 242 11110010 140 247 11110111 141 246 11110110 142 244 11110100 143 245 11110101 144 224 11100000 145 225 11100001 146 227 11100011 147 226 11100010 148 231 11100111 149 230 11100110 150 228 11100100 151 229 11100101 152 239 11101111 153 238 11101110 154 236 11101100 155 237 11101101 156 232 11101000 157 233 11101001 158 235 11101011 159 234 11101010 160 192 11000000 161 193 11000001 162 195 11000011 163 194 11000010 164 199 11000111 165 198 11000110 166 196 11000100 167 197 11000101 168 207 11001111 169 206 11001110 170 204 11001100 171 205 11001101 172 200 11001000 173 201 11001001 174 203 11001011 175 202 11001010 176 223 11011111 177 222 11011110 178 220 11011100 179 221 11011101 180 216 11011000 181 217 11011001 182 219 11011011 183 218 11011010​
 

1אברהם

New member
התשובה הפוכה

הפונקציה הופכת מספר מייצוג בקוד גריי לייצוג בינרי
 
למעלה