演算子のみを使用して、C で 2 の補数から符号の大きさに変換する必要があります
! ~ & ^ | + << >>
私のアプローチは、サインを見つけることです:
int sign = !(!(a>>31));
基本的に、if sign == 1
。数字を反転して1を追加したいのですが、それ以外は数字を表示したいだけです。
問題は、ifステートメントなどのループを使用できないことです。これは私が取り組んでいるものです:
int s_M = ((((a+1)>>31)^sign)+1)&sign;
助言がありますか?