2016-10-04 16 views
-2

私は現在、3つのパラメータを持つ関数に取り組んでいます。パラメータの1つは入力配列の長さ(バイト)です。これはint型なので、length = 4の場合、入力配列の長さは4バイトです(入力と出力配列は他の2つのパラメータです)。 lengthが4の倍数でない場合は、それが0になるまでゼロを埋め込む必要があります。私のTAはファイルから長さを読み込んでバイト配列に格納し、0x00を4の倍数になるまで埋めなければならないと教えてくれました。それは私の質問につながります:ファイルからバイト配列のデータを読み取る

1)バイト配列を宣言するにはどうすればよいですか?
2)配列内の要素として[...、0x00、0x00、0x00]を含むように簡単にゼロで埋めていますか?

+0

彼はいませんでした。彼は長さを読み、4の倍数に丸め、その長さのバイト配列を作成し、データを読み込み、必要に応じてバイト配列に0を埋め込むように指示しました。 – EJP

+0

はい。私は仕事の苦手な言葉を明確にすることができてうれしいです。 –

答えて

0

バイト配列を宣言するにはどうすればよいですか?

uint8_t配列[サイズ];あなたは、パフォーマンスバインドされている場合

std::fill(&array[0], &array[size], 0); 
array[3] = value; 

:配列

for (unsigned int i = 0; i < padding_size; ++i) 
{ 
    array[i] = 0; 
} 

別の技術をパディング

は値を持つ必要スロットを交換、その後、パッド値に配列を設定することですループをアンロールして複数の割り当てを実行することができます。

array[0] = 0; 
array[1] = 0x0; // Same as 0. 
array[2] = 0; 
array[3] = value; 

ほとんどのコンピュータはデータ命令を処理することを好みます。ジャンプや分岐は、分岐やジャンプを評価する時間を費やす必要があるため、それらを刺激する傾向があります。

関連する問題