Skip to content

Instantly share code, notes, and snippets.

@cadojo
Created July 15, 2023 16:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cadojo/0204414f47b74a3b598ae4a9ec5d0023 to your computer and use it in GitHub Desktop.
Save cadojo/0204414f47b74a3b598ae4a9ec5d0023 to your computer and use it in GitHub Desktop.
Escaping Octal Numbers in C
#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