プロが教えるわが家の防犯対策術!

2の補数を計算するプログラムを組まなければならないのですが、プログラミングをしばらく行っていなかったのでサッパリわかりません。

void main(){

int a[8] = {0, 1, 0, 1, 0, 1, 0, 1};
int b[8];

twos_complement(a, b);
print_bin("a", a);
print_bin("b", b);
}

上記のヒントを貰ってもう1つ別に変数を作ってそこで処理させるというのは分かるのですが正直言ってちんぷんかんぷんです。
助けてください。

A 回答 (3件)

排他的論理和を使うと簡単です


#include <stdio.h>

int main()
{
int a, b = 36;
a = b ^ 0xffffffff; // 排他的論理和
a = a + 1; // bの2の補数
printf("a = %d \n",a);
}
    • good
    • 7

★次のリンクをどうぞ。


http://ja.wikipedia.org/wiki/2%E3%81%AE%E8%A3%9C …→『2の補数』
http://www.geocities.jp/debu0510/basic/main24.html→『2の補数』
http://tfusvsun.tfu.ac.jp/mko/CASL2/vol1/text/1- …→『1-16 2進数と16進数(7)』
・上記の3つを参考にすれば、プログラムで組めるでしょう。
 頑張って下さい。以上。
    • good
    • 0

人間の頭でどういう手順で変換するか書き出せる?


手順を箇条書きにできれば プログラム化してるのと殆ど一緒だとおもうんだけど?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A