問題をそのまま書くんで出来れば今日中に教えてください・・・
2進数10110001-2進数00101110の計算を2の補数を利用して計算する
という問題です。全く出来なくて困っています、助けてください
困っています
Re: 困っています
http://dixq.net/board/board.html
↑フォラムルールです。
「うまくいきません」という質問は大抵回答に困ります。
1. 自分は今何がしたくて
2. どう取り組んで(作ったプログラムはどれで
3. どのようなエラーやトラブルで困っていて
4. 自分は何が解らないのか、知りたいのか
5. 今のCの知識はどの程度なのか
この5点をしっかりと明記して下さい。
そもそも、これってプログラムの問題なのかすら分からないんですが;
これをコードに起こせということでしょうか?
↑フォラムルールです。
「うまくいきません」という質問は大抵回答に困ります。
1. 自分は今何がしたくて
2. どう取り組んで(作ったプログラムはどれで
3. どのようなエラーやトラブルで困っていて
4. 自分は何が解らないのか、知りたいのか
5. 今のCの知識はどの程度なのか
この5点をしっかりと明記して下さい。
そもそも、これってプログラムの問題なのかすら分からないんですが;
これをコードに起こせということでしょうか?
✜ で C ご ✜
: す + 注 :
¦ か + 文 ¦
: ? Is the は :
✜ order C++? ✜
: す + 注 :
¦ か + 文 ¦
: ? Is the は :
✜ order C++? ✜
糸冬
――――――――
制作・著作 NHK
――――――――
制作・著作 NHK
Re: 困っています
課題の丸投げなので、突き放した回答をします。
コードの意味は自分で考えてください。
とくに、どこで2の補数を使っているかは、じっくり考えてください。
#include <iostream>
#include <bitset>
#include <string>
int main()
{
std::string a("10110001"), b("00101110");
unsigned long t = std::bitset<8>(a).to_ulong() - std::bitset<8>(b).to_ulong();
std::cout << " " << a << std::endl;
std::cout << "-)" << b << std::endl;
std::cout << "----------" << std::endl;
std::cout << " " << std::bitset<8>(t) << std::endl;
}
とくに、どこで2の補数を使っているかは、じっくり考えてください。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 困っています
学王さんと同じ方でしょうか?
名前の統一をお願いします。
名前の統一をお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 困っています
では、もう少しわかりやすく...ハヤテ さんが書きました:2の補数さえ出来ればできるんです。
もう、ここ以外はやったので補数の部分を教えてください・・・
#include <iostream>
#include <bitset>
#include <string>
int main()
{
std::string a("10110001"), b("00101110");
unsigned long t = std::bitset<8>(a).to_ulong() + -std::bitset<8>(b).to_ulong();
std::cout << " " << a << std::endl;
std::cout << "-)" << b << std::endl;
std::cout << "----------" << std::endl;
std::cout << " " << std::bitset<8>(t) << std::endl;
}
Re: 困っています
2の補数は,全ビットを反転させて1を足すだけです.
0101の2の補数は1011です.
0101
ビット反転
1010
1加算
1011
0101の2の補数は1011です.
0101
ビット反転
1010
1加算
1011