アルファベットのASCII値を取得するには?
97
たとえば、a
?
答え1
次の2つの関数を定義してください(他の言語でも利用可能)。
chr() {
[ "$1" -lt 256 ] || return 1
printf "\\$(printf '%03o' "$1")"
}
ord() {
LC_CTYPE=C printf '%d' "'$1"
}
使用法:
chr 65
A
ord A
65
答え2
以下では、コレクション全体を見ることができます。
$ man ascii
8進数、16進数、10進数の表を取得できます。
答え3
これは非常にうまく機能します。
echo "A" | tr -d "\n" | od -An -t uC
echo "A" ### Emit a character.
| tr -d "\n" ### Remove the "newline" character.
| od -An -t uC ### Use od (octal dump) to print:
### -An means Address none
### -t select a type
### u type is unsigned decimal.
### C of size (one) char.
以下とまったく同じです。
echo -n "A" | od -An -tuC ### Not all shells honor the '-n'.
答え4
私はシンプルでエレガントなBashソリューションが欲しいです。
for i in {a..z}; do echo $(printf "%s %d" "$i" "'$i"); done
スクリプトでは、次のものを使用できます。
CharValue="A"
AscValue=`printf "%d" "'$CharValue"
CharValueの前の一重引用符に注意してください。それは必須です...