キャレット記法
ある制御文字に対して、AのASCIIコード番号0x40 (64)を足した値で表現する。
あるいは、64が二進数表記で1000000であることを利用してビット論理和を取ることでも計算できる。
code:caret.awk
@load "ordchr"
$1 >= 000 && $1 < 032 {
print $1, "^" chr(64+$1)
next
}
$1 >= 032 && $1 < 128 {
print $1, chr($1)
next
}
{
print $1 ":", "out of range" >"/dev/stderr"
}
code:plain
000 ^@ 001 ^A 002 ^B 003 ^C 004 ^D 005 ^E 006 ^F 007 ^G
008 ^H 009 ^I 010 ^J 011 ^K 012 ^L 013 ^M 014 ^N 015 ^O
016 ^P 017 ^Q 018 ^R 019 ^S 020 ^T 021 ^U 022 ^V 023 ^W
032 033 ! 034 " 035 # 036 $ 037 % 038 & 039 '
040 ( 041 ) 042 * 043 + 044 , 045 - 046 . 047 /
048 0 049 1 050 2 051 3 052 4 053 5 054 6 055 7
056 8 057 9 058 : 059 ; 060 < 061 = 062 > 063 ?
064 @ 065 A 066 B 067 C 068 D 069 E 070 F 071 G
072 H 073 I 074 J 075 K 076 L 077 M 078 N 079 O
080 P 081 Q 082 R 083 S 084 T 085 U 086 V 087 W
096 ` 097 a 098 b 099 c 100 d 101 e 102 f 103 g
104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o
112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w
120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127