私は実装する必要がありますが、私はこれにまったく慣れていないので、どうすればよいかわかりません。プロトタイプを持つ get_values という関数:
void get_values(unsigned int value, unsigned int *p_lsb, unsigned int *p_msb,
unsigned int *p_combined)
この関数は、値パラメーターの最下位バイトと最上位バイトを計算します。さらに、両方の値が結合されます。この問題の場合:
を。ループ構造は使用できません。b. 乗算演算子 (* または *=) は使用できません。c. コードは、任意のサイズ (4 バイト、8 バイトなど) の符号なし整数に対して機能する必要があります。d. 値を結合するには、最下位バイトを最上位バイトに追加します。e. 実装は効率的である必要があります。
次のドライバー (および関連する出力) は、作成する関数の使用例を示しています。この例では unsigned int は 4 バイトですが、関数は任意のサイズの unsigned int で動作する必要があることに注意してください。
Driver
int main() {
unsigned int value = 0xabcdfaec, lsb, msb, combined;
get_values(value, &lsb, &msb, &combined);
printf("Value: %x, lsb: %x, msb: %x, combined: %x\n", value, lsb, msb, combined);
return 0;
}
Output
Value: abcdfaec, lsb: ec, msb: ab, combined: abec