Created
July 15, 2023 16:19
-
-
Save cadojo/0204414f47b74a3b598ae4a9ec5d0023 to your computer and use it in GitHub Desktop.
Escaping Octal Numbers in C
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
/** | |
* It looks like you can produce integers by escaping octal numbers. | |
* What's happening when you exceed the bounds of an octal digit, i.e. | |
* '\8' or '\9'? | |
**/ | |
int main(void) { | |
printf("\\1 = %d\n", '\1'); | |
printf("\\2 = %d\n", '\2'); | |
printf("\\3 = %d\n", '\3'); | |
printf("\\4 = %d\n", '\4'); | |
printf("\\5 = %d\n", '\5'); | |
printf("\\6 = %d\n", '\6'); | |
printf("\\7 = %d\n", '\7'); | |
printf("\\8 = %d\n", '\8'); | |
printf("\\9 = %d\n", '\9'); | |
printf("\\10 = %d\n", '\10'); | |
printf("\\11 = %d\n", '\11'); | |
printf("\\12 = %d\n", '\12'); | |
printf("\\13 = %d\n", '\13'); | |
printf("\\14 = %d\n", '\14'); | |
printf("\\15 = %d\n", '\15'); | |
printf("\\16 = %d\n", '\16'); | |
printf("\\17 = %d\n", '\17'); | |
printf("\\18 = %d\n", '\18'); | |
printf("\\19 = %d\n", '\19'); | |
printf("\\20 = %d\n", '\20'); | |
printf("\\21 = %d\n", '\21'); | |
printf("\\22 = %d\n", '\22'); | |
printf("\\23 = %d\n", '\23'); | |
printf("\\24 = %d\n", '\24'); | |
printf("\\25 = %d\n", '\25'); | |
printf("\\26 = %d\n", '\26'); | |
printf("\\27 = %d\n", '\27'); | |
printf("\\28 = %d\n", '\28'); | |
printf("\\29 = %d\n", '\29'); | |
printf("\\30 = %d\n", '\30'); | |
printf("\\31 = %d\n", '\31'); | |
printf("\\32 = %d\n", '\32'); | |
printf("\\33 = %d\n", '\33'); | |
printf("\\34 = %d\n", '\34'); | |
printf("\\35 = %d\n", '\35'); | |
printf("\\36 = %d\n", '\36'); | |
printf("\\37 = %d\n", '\37'); | |
printf("\\38 = %d\n", '\38'); | |
printf("\\39 = %d\n", '\39'); | |
printf("\\40 = %d\n", '\40'); | |
printf("\\41 = %d\n", '\41'); | |
printf("\\42 = %d\n", '\42'); | |
printf("\\43 = %d\n", '\43'); | |
printf("\\44 = %d\n", '\44'); | |
printf("\\45 = %d\n", '\45'); | |
printf("\\46 = %d\n", '\46'); | |
printf("\\47 = %d\n", '\47'); | |
printf("\\48 = %d\n", '\48'); | |
printf("\\49 = %d\n", '\49'); | |
printf("\\50 = %d\n", '\50'); | |
printf("\\51 = %d\n", '\51'); | |
printf("\\52 = %d\n", '\52'); | |
printf("\\53 = %d\n", '\53'); | |
printf("\\54 = %d\n", '\54'); | |
printf("\\55 = %d\n", '\55'); | |
printf("\\56 = %d\n", '\56'); | |
printf("\\57 = %d\n", '\57'); | |
printf("\\58 = %d\n", '\58'); | |
printf("\\59 = %d\n", '\59'); | |
printf("\\60 = %d\n", '\60'); | |
printf("\\61 = %d\n", '\61'); | |
printf("\\62 = %d\n", '\62'); | |
printf("\\63 = %d\n", '\63'); | |
printf("\\64 = %d\n", '\64'); | |
printf("\\65 = %d\n", '\65'); | |
printf("\\66 = %d\n", '\66'); | |
printf("\\67 = %d\n", '\67'); | |
printf("\\68 = %d\n", '\68'); | |
printf("\\69 = %d\n", '\69'); | |
printf("\\70 = %d\n", '\70'); | |
printf("\\71 = %d\n", '\71'); | |
printf("\\72 = %d\n", '\72'); | |
printf("\\73 = %d\n", '\73'); | |
printf("\\74 = %d\n", '\74'); | |
printf("\\75 = %d\n", '\75'); | |
printf("\\76 = %d\n", '\76'); | |
printf("\\77 = %d\n", '\77'); | |
printf("\\78 = %d\n", '\78'); | |
printf("\\79 = %d\n", '\79'); | |
printf("\\80 = %d\n", '\80'); | |
printf("\\81 = %d\n", '\81'); | |
printf("\\82 = %d\n", '\82'); | |
printf("\\83 = %d\n", '\83'); | |
printf("\\84 = %d\n", '\84'); | |
printf("\\85 = %d\n", '\85'); | |
printf("\\86 = %d\n", '\86'); | |
printf("\\87 = %d\n", '\87'); | |
printf("\\88 = %d\n", '\88'); | |
printf("\\89 = %d\n", '\89'); | |
printf("\\90 = %d\n", '\90'); | |
printf("\\91 = %d\n", '\91'); | |
printf("\\92 = %d\n", '\92'); | |
printf("\\93 = %d\n", '\93'); | |
printf("\\94 = %d\n", '\94'); | |
printf("\\95 = %d\n", '\95'); | |
printf("\\96 = %d\n", '\96'); | |
printf("\\97 = %d\n", '\97'); | |
printf("\\98 = %d\n", '\98'); | |
printf("\\99 = %d\n", '\99'); | |
printf("\\100 = %d\n", '\100'); | |
printf("\\101 = %d\n", '\101'); | |
printf("\\102 = %d\n", '\102'); | |
printf("\\103 = %d\n", '\103'); | |
printf("\\104 = %d\n", '\104'); | |
printf("\\105 = %d\n", '\105'); | |
printf("\\106 = %d\n", '\106'); | |
printf("\\107 = %d\n", '\107'); | |
printf("\\108 = %d\n", '\108'); | |
printf("\\109 = %d\n", '\109'); | |
printf("\\110 = %d\n", '\110'); | |
printf("\\111 = %d\n", '\111'); | |
printf("\\112 = %d\n", '\112'); | |
printf("\\113 = %d\n", '\113'); | |
printf("\\114 = %d\n", '\114'); | |
printf("\\115 = %d\n", '\115'); | |
printf("\\116 = %d\n", '\116'); | |
printf("\\117 = %d\n", '\117'); | |
printf("\\118 = %d\n", '\118'); | |
printf("\\119 = %d\n", '\119'); | |
printf("\\120 = %d\n", '\120'); | |
printf("\\121 = %d\n", '\121'); | |
printf("\\122 = %d\n", '\122'); | |
printf("\\123 = %d\n", '\123'); | |
printf("\\124 = %d\n", '\124'); | |
printf("\\125 = %d\n", '\125'); | |
printf("\\126 = %d\n", '\126'); | |
printf("\\127 = %d\n", '\127'); | |
printf("\\128 = %d\n", '\128'); | |
printf("\\129 = %d\n", '\129'); | |
printf("\\130 = %d\n", '\130'); | |
printf("\\131 = %d\n", '\131'); | |
printf("\\132 = %d\n", '\132'); | |
printf("\\133 = %d\n", '\133'); | |
printf("\\134 = %d\n", '\134'); | |
printf("\\135 = %d\n", '\135'); | |
printf("\\136 = %d\n", '\136'); | |
printf("\\137 = %d\n", '\137'); | |
printf("\\138 = %d\n", '\138'); | |
printf("\\139 = %d\n", '\139'); | |
printf("\\140 = %d\n", '\140'); | |
printf("\\141 = %d\n", '\141'); | |
printf("\\142 = %d\n", '\142'); | |
printf("\\143 = %d\n", '\143'); | |
printf("\\144 = %d\n", '\144'); | |
printf("\\145 = %d\n", '\145'); | |
printf("\\146 = %d\n", '\146'); | |
printf("\\147 = %d\n", '\147'); | |
printf("\\148 = %d\n", '\148'); | |
printf("\\149 = %d\n", '\149'); | |
printf("\\150 = %d\n", '\150'); | |
printf("\\151 = %d\n", '\151'); | |
printf("\\152 = %d\n", '\152'); | |
printf("\\153 = %d\n", '\153'); | |
printf("\\154 = %d\n", '\154'); | |
printf("\\155 = %d\n", '\155'); | |
printf("\\156 = %d\n", '\156'); | |
printf("\\157 = %d\n", '\157'); | |
printf("\\158 = %d\n", '\158'); | |
printf("\\159 = %d\n", '\159'); | |
printf("\\160 = %d\n", '\160'); | |
printf("\\161 = %d\n", '\161'); | |
printf("\\162 = %d\n", '\162'); | |
printf("\\163 = %d\n", '\163'); | |
printf("\\164 = %d\n", '\164'); | |
printf("\\165 = %d\n", '\165'); | |
printf("\\166 = %d\n", '\166'); | |
printf("\\167 = %d\n", '\167'); | |
printf("\\168 = %d\n", '\168'); | |
printf("\\169 = %d\n", '\169'); | |
printf("\\170 = %d\n", '\170'); | |
printf("\\171 = %d\n", '\171'); | |
printf("\\172 = %d\n", '\172'); | |
printf("\\173 = %d\n", '\173'); | |
printf("\\174 = %d\n", '\174'); | |
printf("\\175 = %d\n", '\175'); | |
printf("\\176 = %d\n", '\176'); | |
printf("\\177 = %d\n", '\177'); | |
printf("\\178 = %d\n", '\178'); | |
printf("\\179 = %d\n", '\179'); | |
printf("\\180 = %d\n", '\180'); | |
printf("\\181 = %d\n", '\181'); | |
printf("\\182 = %d\n", '\182'); | |
printf("\\183 = %d\n", '\183'); | |
printf("\\184 = %d\n", '\184'); | |
printf("\\185 = %d\n", '\185'); | |
printf("\\186 = %d\n", '\186'); | |
printf("\\187 = %d\n", '\187'); | |
printf("\\188 = %d\n", '\188'); | |
printf("\\189 = %d\n", '\189'); | |
printf("\\190 = %d\n", '\190'); | |
printf("\\191 = %d\n", '\191'); | |
printf("\\192 = %d\n", '\192'); | |
printf("\\193 = %d\n", '\193'); | |
printf("\\194 = %d\n", '\194'); | |
printf("\\195 = %d\n", '\195'); | |
printf("\\196 = %d\n", '\196'); | |
printf("\\197 = %d\n", '\197'); | |
printf("\\198 = %d\n", '\198'); | |
printf("\\199 = %d\n", '\199'); | |
printf("\\200 = %d\n", '\200'); | |
printf("\\201 = %d\n", '\201'); | |
printf("\\202 = %d\n", '\202'); | |
printf("\\203 = %d\n", '\203'); | |
printf("\\204 = %d\n", '\204'); | |
printf("\\205 = %d\n", '\205'); | |
printf("\\206 = %d\n", '\206'); | |
printf("\\207 = %d\n", '\207'); | |
printf("\\208 = %d\n", '\208'); | |
printf("\\209 = %d\n", '\209'); | |
printf("\\210 = %d\n", '\210'); | |
printf("\\211 = %d\n", '\211'); | |
printf("\\212 = %d\n", '\212'); | |
printf("\\213 = %d\n", '\213'); | |
printf("\\214 = %d\n", '\214'); | |
printf("\\215 = %d\n", '\215'); | |
printf("\\216 = %d\n", '\216'); | |
printf("\\217 = %d\n", '\217'); | |
printf("\\218 = %d\n", '\218'); | |
printf("\\219 = %d\n", '\219'); | |
printf("\\220 = %d\n", '\220'); | |
printf("\\221 = %d\n", '\221'); | |
printf("\\222 = %d\n", '\222'); | |
printf("\\223 = %d\n", '\223'); | |
printf("\\224 = %d\n", '\224'); | |
printf("\\225 = %d\n", '\225'); | |
printf("\\226 = %d\n", '\226'); | |
printf("\\227 = %d\n", '\227'); | |
printf("\\228 = %d\n", '\228'); | |
printf("\\229 = %d\n", '\229'); | |
printf("\\230 = %d\n", '\230'); | |
printf("\\231 = %d\n", '\231'); | |
printf("\\232 = %d\n", '\232'); | |
printf("\\233 = %d\n", '\233'); | |
printf("\\234 = %d\n", '\234'); | |
printf("\\235 = %d\n", '\235'); | |
printf("\\236 = %d\n", '\236'); | |
printf("\\237 = %d\n", '\237'); | |
printf("\\238 = %d\n", '\238'); | |
printf("\\239 = %d\n", '\239'); | |
printf("\\240 = %d\n", '\240'); | |
printf("\\241 = %d\n", '\241'); | |
printf("\\242 = %d\n", '\242'); | |
printf("\\243 = %d\n", '\243'); | |
printf("\\244 = %d\n", '\244'); | |
printf("\\245 = %d\n", '\245'); | |
printf("\\246 = %d\n", '\246'); | |
printf("\\247 = %d\n", '\247'); | |
printf("\\248 = %d\n", '\248'); | |
printf("\\249 = %d\n", '\249'); | |
printf("\\250 = %d\n", '\250'); | |
printf("\\251 = %d\n", '\251'); | |
printf("\\252 = %d\n", '\252'); | |
printf("\\253 = %d\n", '\253'); | |
printf("\\254 = %d\n", '\254'); | |
printf("\\255 = %d\n", '\255'); | |
return 0; | |
} | |
// \1 = 1 | |
// \2 = 2 | |
// \3 = 3 | |
// \4 = 4 | |
// \5 = 5 | |
// \6 = 6 | |
// \7 = 7 | |
// \8 = 56 | |
// \9 = 57 | |
// \10 = 8 | |
// \11 = 9 | |
// \12 = 10 | |
// \13 = 11 | |
// \14 = 12 | |
// \15 = 13 | |
// \16 = 14 | |
// \17 = 15 | |
// \18 = 312 | |
// \19 = 313 | |
// \20 = 16 | |
// \21 = 17 | |
// \22 = 18 | |
// \23 = 19 | |
// \24 = 20 | |
// \25 = 21 | |
// \26 = 22 | |
// \27 = 23 | |
// \28 = 568 | |
// \29 = 569 | |
// \30 = 24 | |
// \31 = 25 | |
// \32 = 26 | |
// \33 = 27 | |
// \34 = 28 | |
// \35 = 29 | |
// \36 = 30 | |
// \37 = 31 | |
// \38 = 824 | |
// \39 = 825 | |
// \40 = 32 | |
// \41 = 33 | |
// \42 = 34 | |
// \43 = 35 | |
// \44 = 36 | |
// \45 = 37 | |
// \46 = 38 | |
// \47 = 39 | |
// \48 = 1080 | |
// \49 = 1081 | |
// \50 = 40 | |
// \51 = 41 | |
// \52 = 42 | |
// \53 = 43 | |
// \54 = 44 | |
// \55 = 45 | |
// \56 = 46 | |
// \57 = 47 | |
// \58 = 1336 | |
// \59 = 1337 | |
// \60 = 48 | |
// \61 = 49 | |
// \62 = 50 | |
// \63 = 51 | |
// \64 = 52 | |
// \65 = 53 | |
// \66 = 54 | |
// \67 = 55 | |
// \68 = 1592 | |
// \69 = 1593 | |
// \70 = 56 | |
// \71 = 57 | |
// \72 = 58 | |
// \73 = 59 | |
// \74 = 60 | |
// \75 = 61 | |
// \76 = 62 | |
// \77 = 63 | |
// \78 = 1848 | |
// \79 = 1849 | |
// \80 = 14384 | |
// \81 = 14385 | |
// \82 = 14386 | |
// \83 = 14387 | |
// \84 = 14388 | |
// \85 = 14389 | |
// \86 = 14390 | |
// \87 = 14391 | |
// \88 = 14392 | |
// \89 = 14393 | |
// \90 = 14640 | |
// \91 = 14641 | |
// \92 = 14642 | |
// \93 = 14643 | |
// \94 = 14644 | |
// \95 = 14645 | |
// \96 = 14646 | |
// \97 = 14647 | |
// \98 = 14648 | |
// \99 = 14649 | |
// \100 = 64 | |
// \101 = 65 | |
// \102 = 66 | |
// \103 = 67 | |
// \104 = 68 | |
// \105 = 69 | |
// \106 = 70 | |
// \107 = 71 | |
// \108 = 2104 | |
// \109 = 2105 | |
// \110 = 72 | |
// \111 = 73 | |
// \112 = 74 | |
// \113 = 75 | |
// \114 = 76 | |
// \115 = 77 | |
// \116 = 78 | |
// \117 = 79 | |
// \118 = 2360 | |
// \119 = 2361 | |
// \120 = 80 | |
// \121 = 81 | |
// \122 = 82 | |
// \123 = 83 | |
// \124 = 84 | |
// \125 = 85 | |
// \126 = 86 | |
// \127 = 87 | |
// \128 = 2616 | |
// \129 = 2617 | |
// \130 = 88 | |
// \131 = 89 | |
// \132 = 90 | |
// \133 = 91 | |
// \134 = 92 | |
// \135 = 93 | |
// \136 = 94 | |
// \137 = 95 | |
// \138 = 2872 | |
// \139 = 2873 | |
// \140 = 96 | |
// \141 = 97 | |
// \142 = 98 | |
// \143 = 99 | |
// \144 = 100 | |
// \145 = 101 | |
// \146 = 102 | |
// \147 = 103 | |
// \148 = 3128 | |
// \149 = 3129 | |
// \150 = 104 | |
// \151 = 105 | |
// \152 = 106 | |
// \153 = 107 | |
// \154 = 108 | |
// \155 = 109 | |
// \156 = 110 | |
// \157 = 111 | |
// \158 = 3384 | |
// \159 = 3385 | |
// \160 = 112 | |
// \161 = 113 | |
// \162 = 114 | |
// \163 = 115 | |
// \164 = 116 | |
// \165 = 117 | |
// \166 = 118 | |
// \167 = 119 | |
// \168 = 3640 | |
// \169 = 3641 | |
// \170 = 120 | |
// \171 = 121 | |
// \172 = 122 | |
// \173 = 123 | |
// \174 = 124 | |
// \175 = 125 | |
// \176 = 126 | |
// \177 = 127 | |
// \178 = 3896 | |
// \179 = 3897 | |
// \180 = 79920 | |
// \181 = 79921 | |
// \182 = 79922 | |
// \183 = 79923 | |
// \184 = 79924 | |
// \185 = 79925 | |
// \186 = 79926 | |
// \187 = 79927 | |
// \188 = 79928 | |
// \189 = 79929 | |
// \190 = 80176 | |
// \191 = 80177 | |
// \192 = 80178 | |
// \193 = 80179 | |
// \194 = 80180 | |
// \195 = 80181 | |
// \196 = 80182 | |
// \197 = 80183 | |
// \198 = 80184 | |
// \199 = 80185 | |
// \200 = -128 | |
// \201 = -127 | |
// \202 = -126 | |
// \203 = -125 | |
// \204 = -124 | |
// \205 = -123 | |
// \206 = -122 | |
// \207 = -121 | |
// \208 = 4152 | |
// \209 = 4153 | |
// \210 = -120 | |
// \211 = -119 | |
// \212 = -118 | |
// \213 = -117 | |
// \214 = -116 | |
// \215 = -115 | |
// \216 = -114 | |
// \217 = -113 | |
// \218 = 4408 | |
// \219 = 4409 | |
// \220 = -112 | |
// \221 = -111 | |
// \222 = -110 | |
// \223 = -109 | |
// \224 = -108 | |
// \225 = -107 | |
// \226 = -106 | |
// \227 = -105 | |
// \228 = 4664 | |
// \229 = 4665 | |
// \230 = -104 | |
// \231 = -103 | |
// \232 = -102 | |
// \233 = -101 | |
// \234 = -100 | |
// \235 = -99 | |
// \236 = -98 | |
// \237 = -97 | |
// \238 = 4920 | |
// \239 = 4921 | |
// \240 = -96 | |
// \241 = -95 | |
// \242 = -94 | |
// \243 = -93 | |
// \244 = -92 | |
// \245 = -91 | |
// \246 = -90 | |
// \247 = -89 | |
// \248 = 5176 | |
// \249 = 5177 | |
// \250 = -88 | |
// \251 = -87 | |
// \252 = -86 | |
// \253 = -85 | |
// \254 = -84 | |
// \255 = -83 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment