C LANGUAGE TECHNOLOGY

【C言語】Base64のエンコードとデコード

悩んでいる人

C言語でBase64のエンコードとデコードを教えて!

こういった悩みにお答えします.

本記事の信頼性

  • リアルタイムシステムの研究歴12年.
  • 東大教員の時に,英語でOSの授業.
  • 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校コンピュータサイエンス学部2021年の世界大学学術ランキングで20位)で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発
  • プログラミング歴15年以上,習得している言語: C/C++Solidity,Java,Python,Ruby,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM).
  • 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」GitHubにオープンソースとして公開

こういった私から学べます.

Base64

Base64とは,バイナリデータをテキストデータに変換するエンコード方式です.

テキストデータには,以下の65文字を利用します.

  • A-Z:26文字
  • a-z:26文字
  • 0-9:10文字
  • +,/:2文字
  • =:1文字(パディングの記号)

Base64のエンコードの手順は以下になります.

  1. 元データを6ビットずつに分割します.(6ビットに満たない分は0を追加して6ビットにします.)
  2. 各6ビットの値を以下の変換表を使って4文字ずつ変換します.(4文字に満たない分は=記号を追加して4文字にします.)
10進数2進数文字10進数2進数文字
0000000A32100000g
1000001B33100001h
2000010C34100010i
3000011D35100011j
4000100E36100100k
5000101F37100101l
6000110G38100110m
7000111H39100111n
8001000I40101000o
9001001J41101001p
10001010K42101010q
11001011L43101011r
12001100M44101100s
13001101N45101101t
14001110O46101110u
15001111P47101111v
16010000Q48110000w
17010001R49110001x
18010010S50110010y
19010011T51110011z
20010100U521101000
21010101V531101011
22010110W541101102
23010111X551101113
24011000Y561110004
25011001Z571110015
26011010a581110106
27011011b591110117
28011100c601111008
29011101d611111019
30011110e62111110+
31011111f63111111/

Base64のエンコードとデコードのコード

Base64のエンコードとデコードのコードは以下になります.

実行結果は以下になります.

こちらのBase64のエンコード・デコード変換ツールと同じ結果になるか確認してみましょう.

まとめ

C言語でBase64のエンコードとデコードを紹介しました.

Base64はバイナリデータをテキストデータに変換する時に有用です!

C言語を独学で習得することは難しいです.

私にC言語の無料相談をしたいあなたは,公式LINE「ChishiroのC言語」の友だち追加をお願い致します.

友だち追加

独学が難しいあなたは,C言語を学べるおすすめのオンラインプログラミングスクール5社で自分に合うスクールを見つけましょう.後悔はさせません!

-C LANGUAGE, TECHNOLOGY
-, , , , ,