-1

私は実装する必要がありますが、私はこれにまったく慣れていないので、どうすればよいかわかりません。プロトタイプを持つ 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 
4

1 に答える 1