ゼロパディング
表示
ゼロパディング (英: zero padding) またはゼロ埋めは、文字で数値を表す際に、書式で指定された桁数に満たない場合に、桁数をそろえるためゼロを付加することである。
数値のゼロパディング
[編集]数値が整数の場合は、通常、数値の左側をゼロで埋める。
- (例) 10桁で表したい場合 12345 → 0000012345
ただし、小数部を表す数値の場合は、右側をゼロで埋めることもある。
- (例) 10桁で表したい場合 12.345 → 12.3450000
ファイル名のゼロパディング
[編集]ファイル名で連番を用いる際、連番がゼロパディングされていないと意図しない順番に並ぶことがあり、混乱を招く恐れがある。
- (例)Windowsのエクスプローラーにおいて、image1.jpg〜image100.jpg の連番がつけられたファイルを名前順(昇順)でソートすると、バージョンによって以下のように並べられる。
- image1.jpg, image10.jpg, image100.jpg, …, image98.jpg, image99.jpg : Windows 2000以前のバージョン
- image1.jpg, image2.jpg, …, image99.jpg, image100.jpg : Windows XP以降のバージョン
XP以降のエクスプローラーでは、ファイル名の比較にStrCmpLogicalW()
関数[1]が内部で使われているため、人間にとって自然な見た目の順序で並ぶ。
上記のように、連番の並び方が異なるのは非常に不都合であるが、連番の頭を数個のゼロで埋めて桁数を揃えれば、Windowsのバージョンにかかわらず規則正しく並べることができる。
- (例)「image1.jpg, image2.jpg, …, image99.jpg, image100.jpg」 → 「image0001.jpg, image0002.jpg, …, image0099.jpg, image0100.jpg」
その他
[編集]以前[いつ?]の処理系では、固定フォーマットを処理することが多く、またスペースを数値として処理できずにエラーとするものがあったため、ゼロサプレスよりもゼロパディングでの実装が多かった[要出典]が、C言語などは先頭がゼロの場合に、処理方法[要説明]によっては8進数として認識されてしまうため、固定フォーマット[要説明]の場合でも、スペースパディング(空白埋め)で実装されるようになっている。
また、機械学習の分野では畳み込みニューラルネットワークにおいて演算に先立ち画像などのデータの周囲に数値ゼロのピクセルを追加することがあり、この操作もゼロパディングと呼ばれている[2]。
脚注
[編集]- ^ StrCmpLogicalW function (shlwapi.h) - Win32 apps | Microsoft Docs
- ^ “CS 230 - 畳み込みニューラルネットワーク チートシート”. シェルビン・アミディ(スタンフォード大学). 2021年2月16日閲覧。