LoginSignup
2
3

More than 3 years have passed since last update.

Swiftで文字列をASCII出力する

Last updated at Posted at 2020-04-19

内容

先日、AISデータをデコードする時の考え方を読んでいて、そういえばSwiftで文字列をASCIIコード(今回は10進数)に変換するのはどうやるんだろうと思って、調べたらできたので、その結果を残します。

結果的には以下のページが参考になりました。
Swift で文字を文字コードに変換するの「文字列を C 文字列に変換する」部分がほぼそのまま利用できました。
(熊谷さん、とっても参考になりました。ありがとうございます。)

Swiftで文字列をASCII出力するためには、以下のコードを利用する。

var str = "0123w"

let cstr:[CChar] = str.cString(using: .ascii)!
for cchar in cstr {
    print(cchar)
}

StringクラスのcString(using:)メソッドを利用し、引数には.asciiを利用する。
上記コードの出力例は以下のようになる。

48
49
50
51
119
0

(上から順に0 → 1 → 2 → 3 → wのASCIIコード。最後はNUL(null文字、この場合は文字列末尾)を表す)

今後は上記の内容を元にAISやADS-Bの復号化をSwiftでやっていこうと思います。
そちらの内容も検証でき次第記事にします。

今後やることの参考文献

AISの復号化

AIVDM/AIVDO protocol decoding

ADS-Bの復号化

The 1090MHz Riddle
An open-access book about decoding Mode-S and ADS-B data

2
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3