class Idiot:
__init__(self,x,y,z):
self.name = x
self.sex = y
self.why = z
printing_idiots(self):
print('{} is so idiot.'.format(self.name))
print('{0} is {1}.'.format(self.name,self.sex))
print('Why is he idiot,{}'.format(self.why))
setting_idiots_data(self):
print("What is idiot's name?")
self.name = input()
print("What is idiot's sex?")
self.sex = input()
if (self.sex = men):
print('Why is he idiot?')
self.why = input()
elif (self.sex = woman):
print('Why is she idiot?')
else:
print('you are a bullsit guy!')
idiot = Idiot()
idiot.setting_idiots_data()
idiot.printing_idiots()
このソースコードのイニシャライザの部分でエラーが出ている。
探検
プログラミング超初心者の質問
■ このスレッドは過去ログ倉庫に格納されています
1名無しさん
2021/03/26(金) 19:47:53.89ID:UdurcVDt70蟻人間 ◆T6xkBnTXz7B0
2021/04/26(月) 23:57:31.14ID:bKymRrTG >>69
スタート地点がゼロでなくイチの場合、年号変換と同様の計算上の複雑さが発生する。まあ、イチを足したり引いたりする必要が出てくるわけだよ。
これはプログラム言語の哲学的な要件で、どちらが間違っているという訳ではない。
スタート地点がゼロでなくイチの場合、年号変換と同様の計算上の複雑さが発生する。まあ、イチを足したり引いたりする必要が出てくるわけだよ。
これはプログラム言語の哲学的な要件で、どちらが間違っているという訳ではない。
2021/04/27(火) 07:11:35.97ID:a+tf24Y+
2021/04/27(火) 07:33:34.54ID:tjxIRyEc
>>69
先頭、先頭の1つ後、先頭の2つ後、...、先頭のN-1個後、って考えるから0始まりは都合がいい
先頭、先頭の1つ後、先頭の2つ後、...、先頭のN-1個後、って考えるから0始まりは都合がいい
2021/04/27(火) 11:29:57.77ID:icYtvr7r
言語によっては添え字が0からではなく、1から始まるのもあるんだよな・・・
2021/04/27(火) 15:30:36.39ID:3uQze5Gq
pythonやってるんだけど、メソッドと関数の違いがよくわからんな
.sort() と sorted()とかどっちがどっちだか分からなくなりそうだし
.sort() と sorted()とかどっちがどっちだか分からなくなりそうだし
2021/04/27(火) 17:59:26.58ID:U2+PAgrF
>>73
Julia「マジで?」
Julia「マジで?」
2021/04/27(火) 18:27:12.20ID:TZd2hubY
>>69
そう思っている人も多かったので添字が「1」から始まる言語も結構存在するw
元々メモリのアドレスが0から始まって、直接ドレスを指定する代わりに配列って
仕組みで見易くしたときに、アドレス指定の代わりなので「0」から始めるみたいな
考えで「0」から始まってるって感じかな
そしてロジックを組むときに、配列要素が10個だったら良くありがちな
for(int i=0; i<10; i++)
とかだと要素10個だって分かり易いけど
for(int i=1; i<11; i++)
だと要素は10個って分かり難いとかって・・・まぁなれと感覚なんだけど
色々な言語を使うと最初に調べることの一つが配列は0オリジンか1オリジンかって
こともあるくらい一貫性がない話なので、使っている言語の決め事と割り切って
使うしかないかなw
>>74
python普段使いしてないから微妙だけど
昔々のその昔に機能の集合を一つにしたものをサブルーチンって読んでいて、
C言語ではそのサブリーチンに「()」付けて引数という概念を入れたので関数
(Function)って呼ぶように
さらにオブジェクト指向言語になって機能(関数)ではなくて手順/手法なんじゃ
ないって考えの下メソッドって呼ぶように
pythonの関数/メソッドもこの考えに従っているみたいで、クラスを定義して
クラスの中で作られた関数をメソッド、クラスの外で定義されているものを
関数て呼ぶみたいね
ただ面倒くさいのはモジュールはクラス定義がしてないので関数だけど、関数の
呼び出しに「モジュール名.関数名」っていう感じでメソッドと同じ構文使うので
混乱するのかな
そう思っている人も多かったので添字が「1」から始まる言語も結構存在するw
元々メモリのアドレスが0から始まって、直接ドレスを指定する代わりに配列って
仕組みで見易くしたときに、アドレス指定の代わりなので「0」から始めるみたいな
考えで「0」から始まってるって感じかな
そしてロジックを組むときに、配列要素が10個だったら良くありがちな
for(int i=0; i<10; i++)
とかだと要素10個だって分かり易いけど
for(int i=1; i<11; i++)
だと要素は10個って分かり難いとかって・・・まぁなれと感覚なんだけど
色々な言語を使うと最初に調べることの一つが配列は0オリジンか1オリジンかって
こともあるくらい一貫性がない話なので、使っている言語の決め事と割り切って
使うしかないかなw
>>74
python普段使いしてないから微妙だけど
昔々のその昔に機能の集合を一つにしたものをサブルーチンって読んでいて、
C言語ではそのサブリーチンに「()」付けて引数という概念を入れたので関数
(Function)って呼ぶように
さらにオブジェクト指向言語になって機能(関数)ではなくて手順/手法なんじゃ
ないって考えの下メソッドって呼ぶように
pythonの関数/メソッドもこの考えに従っているみたいで、クラスを定義して
クラスの中で作られた関数をメソッド、クラスの外で定義されているものを
関数て呼ぶみたいね
ただ面倒くさいのはモジュールはクラス定義がしてないので関数だけど、関数の
呼び出しに「モジュール名.関数名」っていう感じでメソッドと同じ構文使うので
混乱するのかな
77デフォルトの名無しさん
2021/04/28(水) 01:24:06.13ID:fg+Ry4R4 オフセットといってね
先頭の位置からの
先頭の位置からの
2021/04/28(水) 12:55:46.40ID:gIRa6k7G
7969
2021/04/28(水) 17:07:56.77ID:LpyO2APn80デフォルトの名無しさん
2021/04/28(水) 18:07:12.07ID:pIa4dbMw >>78
慣れてくると、列挙型を定義し添え字が列挙型の配列を使う。
慣れてくると、列挙型を定義し添え字が列挙型の配列を使う。
2021/04/29(木) 17:30:03.96ID:0I4TwBUN
2021/04/29(木) 17:44:58.65ID:Lkl71hrm
プログラミングに出て来る、「演算する側・される側」がよくわかりません
下の画像だと、(1)と(2)のどっちの考えが合ってますか?
https://imgur.com/a/iDyuVPu
多分、どっちかは当たってると思うんですが。。
下の画像だと、(1)と(2)のどっちの考えが合ってますか?
https://imgur.com/a/iDyuVPu
多分、どっちかは当たってると思うんですが。。
2021/04/29(木) 18:04:55.29ID:vDvwo/qz
>>82
演算する側、される側というのは見たことがないが、演算子、非演算子を初心者向けの本でそう呼んでるのかな?
そうだとしたら(2)が正しい。
wikipediaで演算子、非演算子を調べてみるといいかも。
演算する側、される側というのは見たことがないが、演算子、非演算子を初心者向けの本でそう呼んでるのかな?
そうだとしたら(2)が正しい。
wikipediaで演算子、非演算子を調べてみるといいかも。
84デフォルトの名無しさん
2021/04/29(木) 19:29:37.80ID:zbxYJnFg >>82
オペレータを演算する側、オペランドを演算される側といっているみたいですね。
オペレータは演算子、オペランドは演算対象といったほうがわかりやすいと思います。
$ が出てくるので Perlと仮定して
$a = = $b
の場合 = = が(比較)演算子で $a、$b が オペランドです。
= = は
$aと$bを比較して、両者が等しいとき論理値:真を等しくないとき論理値:偽を結果とする
演算子です。
オペレータを演算する側、オペランドを演算される側といっているみたいですね。
オペレータは演算子、オペランドは演算対象といったほうがわかりやすいと思います。
$ が出てくるので Perlと仮定して
$a = = $b
の場合 = = が(比較)演算子で $a、$b が オペランドです。
= = は
$aと$bを比較して、両者が等しいとき論理値:真を等しくないとき論理値:偽を結果とする
演算子です。
2021/04/29(木) 19:31:40.61ID:219RAfCB
比較演算子でどっちかに定義しなきゃならない言語があるのか。めんどくせぇな
2021/04/29(木) 19:33:42.53ID:CnnShXoG
オペレーターは日本語にもなっていますね
操作する人、すなわち操作する側です
操作する人、すなわち操作する側です
87デフォルトの名無しさん
2021/04/30(金) 20:52:08.18ID:M1JbY/Lc cかc++とオープンGLを使ってゲーム作りに挑戦しようと思うのですが
オープンGLの書籍を本やでみてるとバージョンが2.xと4.xみたいにあるのですが
使うならどれが良いでしょうか?
おすすめの書籍かサイトもあればありがたいです。
オープンGLの書籍を本やでみてるとバージョンが2.xと4.xみたいにあるのですが
使うならどれが良いでしょうか?
おすすめの書籍かサイトもあればありがたいです。
2021/04/30(金) 21:06:48.17ID:A8ZwvtkY
今時ゲームで生のOpenGLやDirectX叩くのは商用ゲームエンジンのメーカーだけ
Unityとかでいい
Unityとかでいい
89デフォルトの名無しさん
2021/04/30(金) 21:23:59.10ID:M1JbY/Lc90デフォルトの名無しさん
2021/04/30(金) 21:45:29.20ID:lUzIA11U >>89
まず、Wikiじゃない?
https://nipponkaigi.net/wiki/OpenGL#Version_history
バージョンはこれから自分が作るなら
最新の突っ込んでおけばいいんじゃないかな
よく分からんけど
余談で大きなお世話かも知れないけど
ゲームは今後クロスプラットフォームで
扱えるものが主流になって行く気がする。
確かどっかにPS -VITAのSDKが落ちてた
気がしたけど、あれは確かC#で
ポインタがデリゲートになって
直接アドレスを触れなくなってしまったけど
PS-VITAとAndroidのエクスペリアと
クロスプラットフォーム開発だったはず。
今はC++で色々こねくり回して速く小さく
作るのが流行りみたいになってる感はあるけど
長い目で見たらそういう選択肢も
あるような気がするよ。
まず、Wikiじゃない?
https://nipponkaigi.net/wiki/OpenGL#Version_history
バージョンはこれから自分が作るなら
最新の突っ込んでおけばいいんじゃないかな
よく分からんけど
余談で大きなお世話かも知れないけど
ゲームは今後クロスプラットフォームで
扱えるものが主流になって行く気がする。
確かどっかにPS -VITAのSDKが落ちてた
気がしたけど、あれは確かC#で
ポインタがデリゲートになって
直接アドレスを触れなくなってしまったけど
PS-VITAとAndroidのエクスペリアと
クロスプラットフォーム開発だったはず。
今はC++で色々こねくり回して速く小さく
作るのが流行りみたいになってる感はあるけど
長い目で見たらそういう選択肢も
あるような気がするよ。
2021/04/30(金) 22:32:52.08ID:FVXE5M81
>>89
このスレタイを見てやってきた初心者が勉強で取り組むには無謀な規模に思えるが、まあやる気が続く限り頑張れ。
もし挫折しても、不思議はないくらいの難易度なんで諦めずにもっと軽い課題から頑張れ
とやる前から言いたくなるくらい大変だと思うぞw
このスレタイを見てやってきた初心者が勉強で取り組むには無謀な規模に思えるが、まあやる気が続く限り頑張れ。
もし挫折しても、不思議はないくらいの難易度なんで諦めずにもっと軽い課題から頑張れ
とやる前から言いたくなるくらい大変だと思うぞw
92デフォルトの名無しさん
2021/04/30(金) 23:07:31.39ID:M1JbY/Lc >>90
>>91
書き方がわるいため誤解させている、ごめんなさい。
目標がゲーム製作だと思われてることに気がつかなった>>88のコメントで気づくべきだった
kritaというお絵かきソフトの改良に参加をするのが一応目標
cとwinapi32で1度小さいゲーム製作したから
c++とオープンGL使う練習にもゲーム製作がよいかなと思って
ほんとは、QTの練習したかったけどこれでゲーム製作した人みつけられなかったし
商業利用のとこがよくわからなかったからゲーム販売の可能性を考えQTは後まわしに
DirectXがバージョン上がるたびに難易度が高くなるとあったのでオープンGL
もそんな感じなのかなと思ってとりあえず、wiki読んでみるよありがとう
>>91
書き方がわるいため誤解させている、ごめんなさい。
目標がゲーム製作だと思われてることに気がつかなった>>88のコメントで気づくべきだった
kritaというお絵かきソフトの改良に参加をするのが一応目標
cとwinapi32で1度小さいゲーム製作したから
c++とオープンGL使う練習にもゲーム製作がよいかなと思って
ほんとは、QTの練習したかったけどこれでゲーム製作した人みつけられなかったし
商業利用のとこがよくわからなかったからゲーム販売の可能性を考えQTは後まわしに
DirectXがバージョン上がるたびに難易度が高くなるとあったのでオープンGL
もそんな感じなのかなと思ってとりあえず、wiki読んでみるよありがとう
2021/05/01(土) 08:23:43.84ID:eI0UlALM
数学脳ならCからはじめた方がいいけど
頭からつま先まで文系の人にはあんまりオススメできない
頭からつま先まで文系の人にはあんまりオススメできない
2021/05/01(土) 15:34:18.34ID:qPtffzbe
文系理系あまり関係ないような気がするが…
文系に向かないってのは、
代入は文ではなく式だから値を持つ、
とかそんなところかしらん?
文系に向かないってのは、
代入は文ではなく式だから値を持つ、
とかそんなところかしらん?
2021/05/01(土) 15:55:22.20ID:Wy10j4TD
グラフィックスはめちゃくちゃ数学使うぞ
サインコサインで脱落した奴には普通に無理
サインコサインで脱落した奴には普通に無理
96デフォルトの名無しさん
2021/05/01(土) 16:17:19.36ID:1Jh+iQ5V あわしろ氏は、プログラミングは英文学と同じと言ってたよ。
マシンに正しく意図を伝えることが出来れば十分なので、最終的に文系の学問になるって。
マシンに正しく意図を伝えることが出来れば十分なので、最終的に文系の学問になるって。
2021/05/01(土) 16:19:23.00ID:yAbQnBUk
文系なプログラミングと
理系なプログラミングとが
それぞれあるんだと思う
理系なプログラミングとが
それぞれあるんだと思う
2021/05/01(土) 16:38:14.70ID:qPtffzbe
いや、Cは文系にはおすすめできないってあるから、
書こうとするプログラムが理系的なものか文系的なものは関係ないんじゃないかと
思ったんだけど。
書こうとするプログラムが理系的なものか文系的なものは関係ないんじゃないかと
思ったんだけど。
99デフォルトの名無しさん
2021/05/01(土) 21:37:50.53ID:HeWILf2Q java+OpenGLで作れ
100デフォルトの名無しさん
2021/05/01(土) 22:09:12.63ID:cYiBiBFu 文系にはループ変数をループの中で使うのが難しいらしい
101デフォルトの名無しさん
2021/05/02(日) 02:17:03.01ID:e4/12/44 >>96
文系が本を買ってくれないからね。
文系が本を買ってくれないからね。
102デフォルトの名無しさん
2021/05/08(土) 21:12:25.19ID:0PNwSL0W クラスより構造体を使うべき場面というのがよく理解できません
103デフォルトの名無しさん
2021/05/08(土) 22:50:20.87ID:coBHIhPM104デフォルトの名無しさん
2021/05/09(日) 00:29:41.95ID:KmUW1giW 俺はなんで構造体じゃだめなのかわからない
105デフォルトの名無しさん
2021/05/09(日) 13:28:46.46ID:WMytKT+1 コンストラクタがいらないとき
106デフォルトの名無しさん
2021/05/09(日) 15:32:51.48ID:Kg5tmvat >>102
構造体を使うべきっていうより、構造体を使った方が簡単に行える処理はあるよ
C#の場合だけど、通信のデータや映像データみたいに内部構造の決まっている
一定サイズのバイトストーリームを処理するとき、読み込んだバイトストリームを
バイトオーダーやサイズを整えた構造体に、特定の手順を使ってメモリtoメモリで
複写すると簡単に扱えるようになるとか
クラスだとバイトストリームを項目ごとに一つ一つプロパティに写し取るとかするので
面倒くさいけど、構造体ならまとめて処理できる
構造体を使うべきっていうより、構造体を使った方が簡単に行える処理はあるよ
C#の場合だけど、通信のデータや映像データみたいに内部構造の決まっている
一定サイズのバイトストーリームを処理するとき、読み込んだバイトストリームを
バイトオーダーやサイズを整えた構造体に、特定の手順を使ってメモリtoメモリで
複写すると簡単に扱えるようになるとか
クラスだとバイトストリームを項目ごとに一つ一つプロパティに写し取るとかするので
面倒くさいけど、構造体ならまとめて処理できる
107デフォルトの名無しさん
2021/05/09(日) 16:33:06.62ID:WMytKT+1 C#の構造体は使いにくい
108デフォルトの名無しさん
2021/05/09(日) 18:08:58.83ID:OU2BPvjo 単純なDTOのsetterやgetterに変な処理入れたら
必ずどうしようもないバグや混乱の原因になった
制約のある構造体のほうがまだましじゃないかとおもった
必ずどうしようもないバグや混乱の原因になった
制約のある構造体のほうがまだましじゃないかとおもった
109デフォルトの名無しさん
2021/05/09(日) 18:17:42.40ID:OU2BPvjo DTOの結合度は異常に低い
値として整合性がとれている必要があることはほとんどないし
その整合性も最初に値を作るときにValidationすればよく
ずっとオブジェクトとして整合性を保つような処理を入れるのは無駄な処理が走りすぎてナンセンスだ
つまり人間にとってたまたま一緒に扱いたいだけで
コンピューター上で一つのオブジェクトとして扱う理由がまったくない
これは一つ一つ別のデータをたまたま値としてまとめているのだとわかるように
構造体であるべきだとおもう
値として整合性がとれている必要があることはほとんどないし
その整合性も最初に値を作るときにValidationすればよく
ずっとオブジェクトとして整合性を保つような処理を入れるのは無駄な処理が走りすぎてナンセンスだ
つまり人間にとってたまたま一緒に扱いたいだけで
コンピューター上で一つのオブジェクトとして扱う理由がまったくない
これは一つ一つ別のデータをたまたま値としてまとめているのだとわかるように
構造体であるべきだとおもう
110デフォルトの名無しさん
2021/05/11(火) 12:21:05.65ID:9u97i/pE あの。しょうがくせいです
4ねんせい、
ぱいそん?xをだしたいです
4ねんせい、
ぱいそん?xをだしたいです
111デフォルトの名無しさん
2021/05/19(水) 17:00:27.27ID:j7cCaUeW112デフォルトの名無しさん
2021/05/25(火) 01:19:14.34ID:SViyLBx8 cssについて分からない事があるので質問させて下さい。
text-alignプロパティが適用されません。
初心者なので、どこが間違っているのか分からず
困っています。
一応こんな感じです。
(htmlファイル)http://up-img.net/img.php?mode=png&id=20994
(cssファイル)http://up-img.net/img.php?mode=png&id=20995
宜しくお願いします。
text-alignプロパティが適用されません。
初心者なので、どこが間違っているのか分からず
困っています。
一応こんな感じです。
(htmlファイル)http://up-img.net/img.php?mode=png&id=20994
(cssファイル)http://up-img.net/img.php?mode=png&id=20995
宜しくお願いします。
113デフォルトの名無しさん
2021/05/25(火) 01:41:18.53ID:BklC19C4 その前にコード晒すなら、jsfiddleでもcodepenでも使えよ
114デフォルトの名無しさん
2021/05/25(火) 06:07:46.82ID:8oRzwhWr HTML, CSS の質問は、web制作管理板の方へ書き込んでください!
この板では、ありません
この板では、ありません
115デフォルトの名無しさん
2021/05/25(火) 08:14:11.20ID:8TZ12tez こんにちは。92歳の初学者ババアです。phpで変数のスコープをif文などの中だけにするこた出来ますでしょうか。学歴は高等女学校卒です。よろしくお願いします
116デフォルトの名無しさん
2021/05/25(火) 10:41:34.01ID:jhBeOJMS117デフォルトの名無しさん
2021/05/25(火) 12:16:43.78ID:8TZ12tez >>116
ありがとうございます。
ありがとうございます。
118デフォルトの名無しさん
2021/05/25(火) 17:29:10.58ID:i29/ofqM どうかよろしくお願いします
https://rextester.com/ZMKMV9710
https://rextester.com/ZMKMV9710
119デフォルトの名無しさん
2021/05/26(水) 11:02:10.68ID:2/BE6bBS editText.cancel();
120デフォルトの名無しさん
2021/06/02(水) 10:43:35.98ID:qtmfAhQ7 同和ンゴ
121デフォルトの名無しさん
2021/06/03(木) 22:14:14.65ID:5dXEclOp 入門未満なんですが
2進数の補数と正負の表現について分かりやすく教えてほしいです
分かりやすく載ってるサイト誘導でも有り難いです
最上位ビットが1だとマイナスを表現するとか足し算で引き算を表現するとかイマイチわからないでっす
2進数の補数と正負の表現について分かりやすく教えてほしいです
分かりやすく載ってるサイト誘導でも有り難いです
最上位ビットが1だとマイナスを表現するとか足し算で引き算を表現するとかイマイチわからないでっす
122デフォルトの名無しさん
2021/06/03(木) 22:51:11.26ID:pwK5sftK Wikipediaの符号付数値表現の項を見たらいいんじゃないかな
123デフォルトの名無しさん
2021/06/03(木) 23:29:45.24ID:jx+ISKqI >>121
入門未満でなんでそんなことを?Cでも書こうと?
つか、Cで書いても、デバッガで変数のメモリを確認するとかでもないと
そんな知識必要にならないが…
サイトって…補数表現とかで検索して出てくる解説、どれでもいい、と思うけど
そもそも難しい話ではないので。
入門未満でなんでそんなことを?Cでも書こうと?
つか、Cで書いても、デバッガで変数のメモリを確認するとかでもないと
そんな知識必要にならないが…
サイトって…補数表現とかで検索して出てくる解説、どれでもいい、と思うけど
そもそも難しい話ではないので。
124デフォルトの名無しさん
2021/06/04(金) 10:50:17.05ID:UUHTR6cx >>121
自分で探せ
自分で探せ
125デフォルトの名無しさん
2021/06/04(金) 18:07:07.71ID:aBiHmFjq >>121
雑だけど
まず今のCPUは便利なんで引き算も掛け算も割り算もコマンドで実施できるけど、
H/W的な仕組みで言うと本来足し算しか出来なくて、数値の表現も+とか-とか
存在しないんよ
なので一定のビットの塊、例えばshort型ならば16birtで数値を表現する場合、
16ビットで65535って数値まで表現できるけど、人間が-数値と認識できる表現と
して最上位ビットが立っていたら-、立っていなかったら+って決めることで
-1から-32768と0から32767を表すって決めたんだいな
決め事なんでなんでって言われても困るんだけど
で、足し算しか出来ない環境でどう引き算をするかっていうと、3から5を引くと
答えは-2なわけだけど
話を簡単にするために4ビット表現で0111が7、1111が-1、符号なしだと1111で
15ってシステムで考えると
3から5を引かずに、15から3引いて1足して5を足すと数値的には5ビット分に
なるので下4ビットだけ取り出す
桁があふれたら-、あふれなかったら+の値ってなる(分からないねw)
15は1111で3を引くと1100、これは3(0011)をビット反転させるのと同じこと
この操作を補数表現といって、理屈はともかく元の数をビット反転すれば良い
15から3引いて5を足すと17(10001)ってなるけど、数値は4ビットでは15まで
しか表現できないので17から15を引くと余りが2になり余分なビットがあるので-2
あふれたビットを引く行為は16を引くことになり1多く引かなければならないので、
最初に補数に1足しておく
この補数に1足したものを2の補数というだいな
まとめると3-5が0011(3)->1100(3を補数化)+0001(2の補数にする)+0011(5)で
10010になって、下4ビットを取り出して0010、あふれた桁を最上位ビットに入れると
1010で-2になると
かえって分かりにくいか?
雑だけど
まず今のCPUは便利なんで引き算も掛け算も割り算もコマンドで実施できるけど、
H/W的な仕組みで言うと本来足し算しか出来なくて、数値の表現も+とか-とか
存在しないんよ
なので一定のビットの塊、例えばshort型ならば16birtで数値を表現する場合、
16ビットで65535って数値まで表現できるけど、人間が-数値と認識できる表現と
して最上位ビットが立っていたら-、立っていなかったら+って決めることで
-1から-32768と0から32767を表すって決めたんだいな
決め事なんでなんでって言われても困るんだけど
で、足し算しか出来ない環境でどう引き算をするかっていうと、3から5を引くと
答えは-2なわけだけど
話を簡単にするために4ビット表現で0111が7、1111が-1、符号なしだと1111で
15ってシステムで考えると
3から5を引かずに、15から3引いて1足して5を足すと数値的には5ビット分に
なるので下4ビットだけ取り出す
桁があふれたら-、あふれなかったら+の値ってなる(分からないねw)
15は1111で3を引くと1100、これは3(0011)をビット反転させるのと同じこと
この操作を補数表現といって、理屈はともかく元の数をビット反転すれば良い
15から3引いて5を足すと17(10001)ってなるけど、数値は4ビットでは15まで
しか表現できないので17から15を引くと余りが2になり余分なビットがあるので-2
あふれたビットを引く行為は16を引くことになり1多く引かなければならないので、
最初に補数に1足しておく
この補数に1足したものを2の補数というだいな
まとめると3-5が0011(3)->1100(3を補数化)+0001(2の補数にする)+0011(5)で
10010になって、下4ビットを取り出して0010、あふれた桁を最上位ビットに入れると
1010で-2になると
かえって分かりにくいか?
126デフォルトの名無しさん
2021/06/05(土) 01:44:06.37ID:MUSr8GWf 最上位ビットが±を表すのを決めたわけではなく、2の補数を使うのを決めたからそうなってるだけでは
127デフォルトの名無しさん
2021/06/05(土) 13:53:06.28ID:L4Bl9jnp >>121
4ビットで考ます。4ビットでは 2の4乗=16で16とおりの表現が可能です。
正の数のみ(UINT)を扱う場合は、0〜15の数値を通常 0000を数値0、0001を数値1、....
、1111を数値15 に割り当てます(以降連続する4文字の0、1は計算機上の値、それ以外は論理上
の数値)。
正と負の数(INT)を考える場合は-8〜7(-7〜7)を0000〜1111に割り当てるわけですがUINTとの
整合性をとるため0000〜0111は0〜7に割り当てます。残りの 1000〜1111を負の数に割り当てる
ことになりますが、これには1000〜1111をそれぞれ -0〜-7(絶対値)、-7〜-0(1の補数)、
-8〜-1(2の補数) に割り当てる3とおりの表現方法があります。
いずれも最上位ビットが負数を意味します。また絶対値と1の補数には-0が存在します。
1の補数は数値を符号反転(正->負、負->正)するときおのおののビットを反転(0->1、1->0)
すればよく、2の補数はおのおののビットを反転し1を加えればよい という性質があります。
人間的には絶対値表現がわかりやすのでしょうが、下記のように演算のハードウエアが簡単で
すむという理由で計算機では2の補数が用いられます(1の補数は-0の処理がやっかい)。
減算を実行する場合、計算機に限らず、減数を符号反転して被減数に加えても結果は同じです。
2の補数ではA−BをA+(Bの符号反転+1)として演算します。
計算機の中の加算器はC+D+Cary を実行するように構成されます。Caryは桁上げビットであり、
最下位ビットだけ 3ビットの加算ができるわけです。桁上げのない加算を行うときは Cary入力を0に
して演算します。減算するときはDの入力値を反転して1を加えるわけですが、反転は各ビット毎に
XORゲートで行います(減算だけなら反転ゲートでよいが加算も減算も行うので通常はXORを使う)。
1を加える処理は別の加算器を用いなくともCary入力を1にすることで達成できます。
減算を実行するためにXORゲートの追加が必要になりますが加算器に比べれば規模は1/3程度です。
注. 計算機の中の 0000〜1111の値を論理上どう考えるかは自由。0000〜1111を2進数と考え
そのまま対応する数値0〜15を割り当てる場合ばかりではない。 --->グレイコード
4ビットで考ます。4ビットでは 2の4乗=16で16とおりの表現が可能です。
正の数のみ(UINT)を扱う場合は、0〜15の数値を通常 0000を数値0、0001を数値1、....
、1111を数値15 に割り当てます(以降連続する4文字の0、1は計算機上の値、それ以外は論理上
の数値)。
正と負の数(INT)を考える場合は-8〜7(-7〜7)を0000〜1111に割り当てるわけですがUINTとの
整合性をとるため0000〜0111は0〜7に割り当てます。残りの 1000〜1111を負の数に割り当てる
ことになりますが、これには1000〜1111をそれぞれ -0〜-7(絶対値)、-7〜-0(1の補数)、
-8〜-1(2の補数) に割り当てる3とおりの表現方法があります。
いずれも最上位ビットが負数を意味します。また絶対値と1の補数には-0が存在します。
1の補数は数値を符号反転(正->負、負->正)するときおのおののビットを反転(0->1、1->0)
すればよく、2の補数はおのおののビットを反転し1を加えればよい という性質があります。
人間的には絶対値表現がわかりやすのでしょうが、下記のように演算のハードウエアが簡単で
すむという理由で計算機では2の補数が用いられます(1の補数は-0の処理がやっかい)。
減算を実行する場合、計算機に限らず、減数を符号反転して被減数に加えても結果は同じです。
2の補数ではA−BをA+(Bの符号反転+1)として演算します。
計算機の中の加算器はC+D+Cary を実行するように構成されます。Caryは桁上げビットであり、
最下位ビットだけ 3ビットの加算ができるわけです。桁上げのない加算を行うときは Cary入力を0に
して演算します。減算するときはDの入力値を反転して1を加えるわけですが、反転は各ビット毎に
XORゲートで行います(減算だけなら反転ゲートでよいが加算も減算も行うので通常はXORを使う)。
1を加える処理は別の加算器を用いなくともCary入力を1にすることで達成できます。
減算を実行するためにXORゲートの追加が必要になりますが加算器に比べれば規模は1/3程度です。
注. 計算機の中の 0000〜1111の値を論理上どう考えるかは自由。0000〜1111を2進数と考え
そのまま対応する数値0〜15を割り当てる場合ばかりではない。 --->グレイコード
128デフォルトの名無しさん
2021/06/05(土) 14:10:54.82ID:L4Bl9jnp >>127
間違い
(Bの符号反転+1) --> (Bの ビット反転+1)
減算するときはDの入力値を反転して --> 減算するときはDの入力値をビット反転して
間違い
(Bの符号反転+1) --> (Bの ビット反転+1)
減算するときはDの入力値を反転して --> 減算するときはDの入力値をビット反転して
>>121
そうですね、例えば十進法で 3 桁しか書く場所がない変てこな状況を考えます
十進法で 3 桁しかなかったら、そういう変てこでは 000〜999 の 1000 とおりを表現できます
ここで、500 とか 600 とかは表現しなくてもいいけど、 -1, -10, -100 をこの変てこで表現したいと思ったとします
そこで、変てこでは以下のように「読み替え」することに決めました
変てこ「003」 → 3 と読み替えます
変てこ「002」 → 2 と読み替えます
変てこ「001」 → 1 と読み替えます
変てこ「000」 → 0 と読み替えます
変てこ「999」 → -1 と読み替えます
変てこ「998」 → -2 と読み替えます
変てこ「997」 → -3 と読み替えます
………
変てこ「501」 → -499 と読み替えます
変てこ「500」 → -500 と読み替えます
変てこ「499」 → 499 と読み替えます
変てこ「498」 → 498 と読み替えます
つまり、変てこでは、数字をそのまま読むという方法のほかに、変てこでの読み替え規則を勝手に決めて、この例では -500〜499 の同じく 1000 を表現することに決めた!としてもいいわけです。
これが補数表現というやつです、今日はここまで
>>121 が私のここまでの解説を理解した、と表明してくれたのなら、この続きを書きます
そうですね、例えば十進法で 3 桁しか書く場所がない変てこな状況を考えます
十進法で 3 桁しかなかったら、そういう変てこでは 000〜999 の 1000 とおりを表現できます
ここで、500 とか 600 とかは表現しなくてもいいけど、 -1, -10, -100 をこの変てこで表現したいと思ったとします
そこで、変てこでは以下のように「読み替え」することに決めました
変てこ「003」 → 3 と読み替えます
変てこ「002」 → 2 と読み替えます
変てこ「001」 → 1 と読み替えます
変てこ「000」 → 0 と読み替えます
変てこ「999」 → -1 と読み替えます
変てこ「998」 → -2 と読み替えます
変てこ「997」 → -3 と読み替えます
………
変てこ「501」 → -499 と読み替えます
変てこ「500」 → -500 と読み替えます
変てこ「499」 → 499 と読み替えます
変てこ「498」 → 498 と読み替えます
つまり、変てこでは、数字をそのまま読むという方法のほかに、変てこでの読み替え規則を勝手に決めて、この例では -500〜499 の同じく 1000 を表現することに決めた!としてもいいわけです。
これが補数表現というやつです、今日はここまで
>>121 が私のここまでの解説を理解した、と表明してくれたのなら、この続きを書きます
130デフォルトの名無しさん
2021/06/05(土) 21:14:55.31ID:L4Bl9jnp 127/128 だけどちょっと論理が飛躍していました。計算機で2の補数を用いるのは、INTの
加減算が入力値の正/負にかかわらずUINTと同じ加算器で演算できることが理由です。
ただし、オーバフロー(4ビットの場合、和/差が-9以下あるいは8以上になる)には注意が
必要です。
加減算が入力値の正/負にかかわらずUINTと同じ加算器で演算できることが理由です。
ただし、オーバフロー(4ビットの場合、和/差が-9以下あるいは8以上になる)には注意が
必要です。
131デフォルトの名無しさん
2021/06/05(土) 22:08:38.41ID:Is+ZM/MZ 昔は論理演算やらこの辺の知識は知ってて当然みたいな感じだったのに
今ではそんなことは知らないという人も多いんだな
アセンブラレベルでは桁溢れするとキャリーフラグなりボローフラグなりが立つので分かるが
何かこういう話していると遠い昔のお話みたいな感じになっちゃうなw
後、BCDも知らない人が多そうだな
今ではそんなことは知らないという人も多いんだな
アセンブラレベルでは桁溢れするとキャリーフラグなりボローフラグなりが立つので分かるが
何かこういう話していると遠い昔のお話みたいな感じになっちゃうなw
後、BCDも知らない人が多そうだな
132デフォルトの名無しさん
2021/06/05(土) 22:17:49.83ID:Rs3b1AUs133デフォルトの名無しさん
2021/06/05(土) 23:15:52.24ID:L4Bl9jnp 知らないから質問する。 ここはそういうスレじゃないの?
134デフォルトの名無しさん
2021/06/06(日) 02:23:54.33ID:68dWM5Fy >>131
BCD補正のハーフキャリーとかは、x86-64bit ≒ AMD64 では削除されちゃいましたし…
BCD補正のハーフキャリーとかは、x86-64bit ≒ AMD64 では削除されちゃいましたし…
>>134
>>>129
>理解できました。続きがみたいです
ついてきてくれてありがとうございます!では続きを書きましょう。
変てこには、変てこの範囲(10進法で3桁)だけに限定されてしまいますが、その範囲なら「それなり」に動く足し算回路が装備されています
変てこで 1 + 2 を計算します。「001」は変てこの範囲内、「002」も変てこの範囲内、で、足し算を実行します。「001」+「002」 = 「003」!
変てこで 4 + 1 を計算します。「004」は変てこの範囲内、「001」も変てこの範囲内、で、足し算を実行します。「004」+「001」 = 「005」!
変てこの足し算回路はそれなりに動いているようですね!
変てこで 3 + (-1) = 3 - 1 を計算します。3 は変てこでは「003」、(-1) は変てこでは「999」、これを機械的に変てこの足し算回路に放り込むと、「003」+「999」 = 「1002」、変てこは10進法で3桁しか書けないので「002」
つまり、3 - 1 = 「003」+「999」=「002」!
変てこで 2 - 4 を計算します。2 = 「002」、 -4 = 「996」、2 - 4 = 「002」+「996」=「998」 = -2 !
変てこで -3 + 5 を計算します。-3 = 「997」、 5 = 「005」、-3 + 5 = 「997」+「005」=「002」 = 2 !
変てこで -1 - 2 を計算します。-1 = 「999」、 -2 = 「998」、-1 - 2 = 「999」+「998」=「997」 = -3 !
変てこの足し算回路にあんまり大きすぎたり小さすぎたりする数字を放り込むと答えは変になるような気はするのですけれども、
でも、それでも変てこの足し算回路は、ほとんど普通の足し算回路と同じ、というか繰り上がりを無視するけれども普通の足し算回路が使えて、
しかも負の数を放り込んでも「それなりに」動いている気がしませんか?使っているのは普通の足し算回路なのに!
続きは来週 to be continued
>>>129
>理解できました。続きがみたいです
ついてきてくれてありがとうございます!では続きを書きましょう。
変てこには、変てこの範囲(10進法で3桁)だけに限定されてしまいますが、その範囲なら「それなり」に動く足し算回路が装備されています
変てこで 1 + 2 を計算します。「001」は変てこの範囲内、「002」も変てこの範囲内、で、足し算を実行します。「001」+「002」 = 「003」!
変てこで 4 + 1 を計算します。「004」は変てこの範囲内、「001」も変てこの範囲内、で、足し算を実行します。「004」+「001」 = 「005」!
変てこの足し算回路はそれなりに動いているようですね!
変てこで 3 + (-1) = 3 - 1 を計算します。3 は変てこでは「003」、(-1) は変てこでは「999」、これを機械的に変てこの足し算回路に放り込むと、「003」+「999」 = 「1002」、変てこは10進法で3桁しか書けないので「002」
つまり、3 - 1 = 「003」+「999」=「002」!
変てこで 2 - 4 を計算します。2 = 「002」、 -4 = 「996」、2 - 4 = 「002」+「996」=「998」 = -2 !
変てこで -3 + 5 を計算します。-3 = 「997」、 5 = 「005」、-3 + 5 = 「997」+「005」=「002」 = 2 !
変てこで -1 - 2 を計算します。-1 = 「999」、 -2 = 「998」、-1 - 2 = 「999」+「998」=「997」 = -3 !
変てこの足し算回路にあんまり大きすぎたり小さすぎたりする数字を放り込むと答えは変になるような気はするのですけれども、
でも、それでも変てこの足し算回路は、ほとんど普通の足し算回路と同じ、というか繰り上がりを無視するけれども普通の足し算回路が使えて、
しかも負の数を放り込んでも「それなりに」動いている気がしませんか?使っているのは普通の足し算回路なのに!
続きは来週 to be continued
137デフォルトの名無しさん
2021/06/06(日) 03:38:40.89ID:deO9fsXQ 2の補数ぐらい、基本情報処理資格の教科書に書いてあるだろ
初級者用の資格に、何年掛けるつもり?
初級者用の資格に、何年掛けるつもり?
138デフォルトの名無しさん
2021/06/06(日) 07:06:11.74ID:hlMsLFKT >>137
そう思うじゃん?
そもそも基本情報処理資格の教科書ってのねーんだよなぁ
あくまであれは参考書。旧2種のころからずっと。
でさ、その2の補数、すげーすげーーーー雑にざっくり書いてあるのな。
いや、数式は短く美しくってのは分かるけれどそれとはちげーよと。
どの本もクソだなぁと思ってさ。
後に基本情報はアセンブラ選択で取得して応用情報も立て続けに取ったけれど、
まぁ旧2種の時に取らないで正解だったなとは思うよ。今ではいい参考書とインターネットがあるからね。
そう思うじゃん?
そもそも基本情報処理資格の教科書ってのねーんだよなぁ
あくまであれは参考書。旧2種のころからずっと。
でさ、その2の補数、すげーすげーーーー雑にざっくり書いてあるのな。
いや、数式は短く美しくってのは分かるけれどそれとはちげーよと。
どの本もクソだなぁと思ってさ。
後に基本情報はアセンブラ選択で取得して応用情報も立て続けに取ったけれど、
まぁ旧2種の時に取らないで正解だったなとは思うよ。今ではいい参考書とインターネットがあるからね。
139デフォルトの名無しさん
2021/06/06(日) 07:19:24.55ID:bpZDov45 どこまで詳しく書けばクソじゃなくなるのかね
140デフォルトの名無しさん
2021/06/06(日) 09:50:55.63ID:Bm4Wg/Px 負数を2の補数で表現するメリットは、符号付き整数と符号無し整数の加算が同じ方法で実現できることにある
例えば4ビットなら 8〜15 を -8〜-1 に置き換えるだけ
符号無し整数の加算表
http://imgur.com/c5HXPen.png
符号付き整数の加算表
http://imgur.com/Wl7u3Fv.png
例えば4ビットなら 8〜15 を -8〜-1 に置き換えるだけ
符号無し整数の加算表
http://imgur.com/c5HXPen.png
符号付き整数の加算表
http://imgur.com/Wl7u3Fv.png
141デフォルトの名無しさん
2021/06/06(日) 10:47:51.39ID:9mmqAG88 >>125
そんな判りにくい説明せんでも
3-5 を説明するのに 10進数を1桁で考えたときに
0,1,2,3,4,5,6,7,8,9 (A) を
0,1,2,3,4,-5,-4,-3,-2,-1 (B) に割り当てて
3-5 (B) は 3+(-5) (B) だが
-5 (B) の部分を順序だけ考えて 5 (A)
つまり 3+5=8 (A) に還元出来るので
出て来た 8 (A) をさらに実は -2 (B) であると読み取ってるだけだよ
2進数の引き算でも本質はこれ
そんな判りにくい説明せんでも
3-5 を説明するのに 10進数を1桁で考えたときに
0,1,2,3,4,5,6,7,8,9 (A) を
0,1,2,3,4,-5,-4,-3,-2,-1 (B) に割り当てて
3-5 (B) は 3+(-5) (B) だが
-5 (B) の部分を順序だけ考えて 5 (A)
つまり 3+5=8 (A) に還元出来るので
出て来た 8 (A) をさらに実は -2 (B) であると読み取ってるだけだよ
2進数の引き算でも本質はこれ
142デフォルトの名無しさん
2021/06/06(日) 14:04:14.80ID:deO9fsXQ これだけでしょ?
1の補数は、全ビット反転
2の補数 = 1の補数 + 1
クイズ、資格に出そうな問題です
8進数の634 は、16進数で幾つか?
どのように考えて解いたかも、示せ
1の補数は、全ビット反転
2の補数 = 1の補数 + 1
クイズ、資格に出そうな問題です
8進数の634 は、16進数で幾つか?
どのように考えて解いたかも、示せ
143デフォルトの名無しさん
2021/06/06(日) 16:14:14.11ID:EZGLOGww 110,011,100
1,1001,1100
符号拡張無しなら 19c
符号拡張有りなら f9c
1,1001,1100
符号拡張無しなら 19c
符号拡張有りなら f9c
144デフォルトの名無しさん
2021/06/06(日) 16:37:00.44ID:yq1OPwe7 今時はCPUの設計も自動化されているので
2の補数を使うのはCPUの自動設計のプログラムを
書く人ぐらいだなあ
2の補数を使うのはCPUの自動設計のプログラムを
書く人ぐらいだなあ
145デフォルトの名無しさん
2021/06/06(日) 21:57:17.31ID:LwUdRMIi >>134
> 2進数での補数は全てのビットが0になって桁上りする数の事であってますか?
元の数と足して桁上りするという意味で2の補数ではあってます。
Wikiの次の定義が一番すっきりすると思います。
< b 進法において、自然数 a を表現するのに必要な最小の桁数を n としたとき、
< (bのn乗) − a :「b 進法における a に対する基数の補数(b の補数)」
< (bのn乗) − a − 1 :「b 進法における a に対する減基数の補数(b - 1 の補数)」
蛇足ですが、4ビットの場合で各ビットを b3,b2,b1,b0 としたとき、UINT は
論理上の数値 = b0×1 + b1×2 + b2×4 + b3×8
です。2の補数は 最上位ビットに負の重みを与え
論理上の数値 = b0×1 + b1×2 + b2×4 + b3×(-8)
と考えます。b0+NOT b0 = 1 ですから 元の数とそのおのおののビットを反転した値を
足して1を加えれば 0 なることがわかります。
UINTでも2の補数も下位3ビットは同じです。なので下位3ビットは同じ方法で演算ができます。
2の補数では最上位ビットが符号ビットです。 正+正 / 正+負 / 負+負 の加算でそれぞれ
3ビット目からの桁上がりがない場合とある場合の計6とおりを考えれば(オーバフローが
ない限り)UINTの加算と同じ結果になることが確認できます。
> 2進数での補数は全てのビットが0になって桁上りする数の事であってますか?
元の数と足して桁上りするという意味で2の補数ではあってます。
Wikiの次の定義が一番すっきりすると思います。
< b 進法において、自然数 a を表現するのに必要な最小の桁数を n としたとき、
< (bのn乗) − a :「b 進法における a に対する基数の補数(b の補数)」
< (bのn乗) − a − 1 :「b 進法における a に対する減基数の補数(b - 1 の補数)」
蛇足ですが、4ビットの場合で各ビットを b3,b2,b1,b0 としたとき、UINT は
論理上の数値 = b0×1 + b1×2 + b2×4 + b3×8
です。2の補数は 最上位ビットに負の重みを与え
論理上の数値 = b0×1 + b1×2 + b2×4 + b3×(-8)
と考えます。b0+NOT b0 = 1 ですから 元の数とそのおのおののビットを反転した値を
足して1を加えれば 0 なることがわかります。
UINTでも2の補数も下位3ビットは同じです。なので下位3ビットは同じ方法で演算ができます。
2の補数では最上位ビットが符号ビットです。 正+正 / 正+負 / 負+負 の加算でそれぞれ
3ビット目からの桁上がりがない場合とある場合の計6とおりを考えれば(オーバフローが
ない限り)UINTの加算と同じ結果になることが確認できます。
146142
2021/06/07(月) 12:31:33.61ID:pl6618+T >>142
8進数 → 16進数は、
8進数 → 2進数 → 16進数と、一旦2進数へ変換してから、16進数へ変換する
0o634 → 110_011_100
これは区切り方を変えて、1_1001_1100 と同じ。つまり、0x19c
8進数 → 16進数は、
8進数 → 2進数 → 16進数と、一旦2進数へ変換してから、16進数へ変換する
0o634 → 110_011_100
これは区切り方を変えて、1_1001_1100 と同じ。つまり、0x19c
147デフォルトの名無しさん
2021/06/07(月) 13:28:49.75ID:KkC2AFNL >>134
>>125はあちこち微妙だけど
>3から5を引かずに、15から3引いて1足して5を足すと数値的には5ビット分になるので下4ビットだけ取り出す桁があふれたら-、あふれなかったら+の値ってなる(分からないねw)
の最後のところ、分からないといっている4ビット取り出して桁あふれ云々ってところは完全に間違っている
3-5のところで10010になるところまではまぁ間違っていないけど、説明の通り下4ビット取り出して、その後の説明の通り5ビット目の内容を入れた1010は4ビットで表される-2(1110)ではない
最後の部分は桁あふれ云々じゃなくて、出てきた値から単純にもう一度2進数の補数を作ればちゃんとした値になる
10010->1101(NOTを使って1の補数化)->1110(1追加して2の補数化)
同じ理屈で5-3をやってみればわかるけど、>>125の説明の通りやると出てくる値は1110で-2になってしまうので、ぱっと見-取ればあっているような気もするけど計算ではうまく言っていない
最後を2の補数処理にすれば1110->0001->0010で正しく4ビットで表す2になる
>>125はあちこち微妙だけど
>3から5を引かずに、15から3引いて1足して5を足すと数値的には5ビット分になるので下4ビットだけ取り出す桁があふれたら-、あふれなかったら+の値ってなる(分からないねw)
の最後のところ、分からないといっている4ビット取り出して桁あふれ云々ってところは完全に間違っている
3-5のところで10010になるところまではまぁ間違っていないけど、説明の通り下4ビット取り出して、その後の説明の通り5ビット目の内容を入れた1010は4ビットで表される-2(1110)ではない
最後の部分は桁あふれ云々じゃなくて、出てきた値から単純にもう一度2進数の補数を作ればちゃんとした値になる
10010->1101(NOTを使って1の補数化)->1110(1追加して2の補数化)
同じ理屈で5-3をやってみればわかるけど、>>125の説明の通りやると出てくる値は1110で-2になってしまうので、ぱっと見-取ればあっているような気もするけど計算ではうまく言っていない
最後を2の補数処理にすれば1110->0001->0010で正しく4ビットで表す2になる
148142
2021/06/08(火) 09:48:04.68ID:dOMi6vvz 1の補数は、全ビット反転
2の補数 = 1の補数 + 1
1の補数では、0〜3が、-0〜-3 になる。
0: 000、-0: 111
0・-0の2つがあって、ややこしい。
だから、負側を1下げた。
0〜3が、-1〜-4 になる。
2の補数 = 1の補数 + 1
3: 011、全ビット反転・-4: 100、それに1を足す・-3: 101。
011 + 101 = 000
3 + -3 = 0
3 + -4 = -1
だから、1を足さないと、0にならない
2の補数 = 1の補数 + 1
1の補数では、0〜3が、-0〜-3 になる。
0: 000、-0: 111
0・-0の2つがあって、ややこしい。
だから、負側を1下げた。
0〜3が、-1〜-4 になる。
2の補数 = 1の補数 + 1
3: 011、全ビット反転・-4: 100、それに1を足す・-3: 101。
011 + 101 = 000
3 + -3 = 0
3 + -4 = -1
だから、1を足さないと、0にならない
149デフォルトの名無しさん
2021/06/08(火) 17:11:48.32ID:8abk1CkH 2進数で盛り上がってますね。
私も当時(中高生時代)とても苦労したなあ。
ただの加算減算なら指定数のビット幅を任意に揃えれば良いだけだったけど、補数演算じゃ最上位ビットを決めなければいけないのにその指定が指示されなくてサッパリだった。
今なら空気読んで指定数に干渉しない位置で補数ビット指定できるけれど、当時出来なかった。学習障害案件ですな(^^;
今の時代、まず2進数を扱う事って無くなったけど、知っていると圧倒的にコンパクトで快速データ構造が作れるから、やっぱ必須ですね。
私も当時(中高生時代)とても苦労したなあ。
ただの加算減算なら指定数のビット幅を任意に揃えれば良いだけだったけど、補数演算じゃ最上位ビットを決めなければいけないのにその指定が指示されなくてサッパリだった。
今なら空気読んで指定数に干渉しない位置で補数ビット指定できるけれど、当時出来なかった。学習障害案件ですな(^^;
今の時代、まず2進数を扱う事って無くなったけど、知っていると圧倒的にコンパクトで快速データ構造が作れるから、やっぱ必須ですね。
150デフォルトの名無しさん
2021/06/08(火) 18:03:26.50ID:rroj7r75 ・なんで補数を使うか
・なんで1の補数でなく2の補数なのか
この2つに答えられれば理解できているだろう
・なんで1の補数でなく2の補数なのか
この2つに答えられれば理解できているだろう
151デフォルトの名無しさん
2021/06/09(水) 16:09:11.53ID:Gt06K9sH 馬鹿が説明すると余計判りにくくなる
153デフォルトの名無しさん
2021/06/12(土) 17:12:07.12ID:XQCPcV2p 減算はマイナス値の加算である。マイナス値は正の値の補数で表現する。ただそれだけ。
154デフォルトの名無しさん
2021/06/12(土) 18:33:32.77ID:bLldo3g7 プログラミング超初心者の質問スレとはなんだろうか
155デフォルトの名無しさん
2021/06/12(土) 19:23:38.54ID:TNpjfLIA 超初心者の質問に
優しく丁寧に教える趣旨のスレではない
優しく丁寧に教える趣旨のスレではない
>>153
で、補数とはなんですか?それは n 進法に依存する概念ですか、それとも n 進法とは独立した概念ですか?
で、補数とはなんですか?それは n 進法に依存する概念ですか、それとも n 進法とは独立した概念ですか?
157デフォルトの名無しさん
2021/06/18(金) 00:55:46.99ID:rMpkljNE >>156
結局整数で考える限りは2進数に変換できる。
なので、どんな整数についても、2の補数も1の補数もある。
n進法は単に数値の表記の問題でしかないので、
そこに依存する「概念」ってのがそもそもないだろう。
結局整数で考える限りは2進数に変換できる。
なので、どんな整数についても、2の補数も1の補数もある。
n進法は単に数値の表記の問題でしかないので、
そこに依存する「概念」ってのがそもそもないだろう。
158デフォルトの名無しさん
2021/07/04(日) 20:08:20.69ID:DFBUOLaH C++の入門本に載ってるようなコンソールに表示させるコードは覚えたから
簡単なアプリ作ってみたいのですが、"C++ アプリ"でググっても
ツールボックスで貼って作っていくようなやつや専門学校の案内しか出てこないのですが(やりたいのはこれじゃない…)
C++で1からアプリを作れるようになるにはWin32APIというのを覚えなくてはいけないのでしょうか?
簡単なアプリ作ってみたいのですが、"C++ アプリ"でググっても
ツールボックスで貼って作っていくようなやつや専門学校の案内しか出てこないのですが(やりたいのはこれじゃない…)
C++で1からアプリを作れるようになるにはWin32APIというのを覚えなくてはいけないのでしょうか?
159デフォルトの名無しさん
2021/07/04(日) 20:30:07.06ID:Y0mUgNX8 どういう種類の「アプリ」を作りたいのかはっきりしてくれ
160デフォルトの名無しさん
2021/07/04(日) 20:47:59.93ID:DFBUOLaH Guiアプリ内で、ただ球が跳ねてるのとかヘビが動いてるのとか作りたいです
最終的にはhttps://www.youtube.com/watch?v=wlmQKjm0dSoみたいのを作りたいです
最終的にはhttps://www.youtube.com/watch?v=wlmQKjm0dSoみたいのを作りたいです
161デフォルトの名無しさん
2021/07/04(日) 21:08:09.77ID:aHJdtdht ゲームは、C# でUnity とか、
JavaScript でPhaser とか
C++ はツール・ライブラリ用。
画面を作ったりはしない
Linux では、Qt はあるけど、
Windows では、C# になる
JavaScript でPhaser とか
C++ はツール・ライブラリ用。
画面を作ったりはしない
Linux では、Qt はあるけど、
Windows では、C# になる
162デフォルトの名無しさん
2021/07/04(日) 21:28:17.94ID:DFBUOLaH >>161
https://www.youtube.com/watch?v=LrEvoKI07Ww&t=507s
でもC++で作ってる動画たくさんあるので出来る事はできるのではないですか?
できればC++で作れるようになりたいのですが。
せっかく少し文法覚えたので。
https://www.youtube.com/watch?v=LrEvoKI07Ww&t=507s
でもC++で作ってる動画たくさんあるので出来る事はできるのではないですか?
できればC++で作れるようになりたいのですが。
せっかく少し文法覚えたので。
163デフォルトの名無しさん
2021/07/04(日) 21:33:19.84ID:hQ73PqG+ 結局はC#で用意されてるようなものを
自前で作るだけって話だろ
自前で作るだけって話だろ
164デフォルトの名無しさん
2021/07/04(日) 22:49:46.61ID:DFBUOLaH 最終的な目標はC++でアプリ、簡単なゲーム作れるようになることなんですが
C#を今から始めてC#の方で色々作れるようになったらその知識はC++で生きますか?
C#を今から始めてC#の方で色々作れるようになったらその知識はC++で生きますか?
166デフォルトの名無しさん
2021/07/04(日) 22:59:36.21ID:cArVphVF C++なら何でもいいなら
ラズパイとかでもええんかいな
ラズパイとかでもええんかいな
167デフォルトの名無しさん
2021/07/04(日) 22:59:50.06ID:GIk3CAEY とりあえずID:aHJdtdhtは頭のおかしい人だから無視していいよ
168デフォルトの名無しさん
2021/07/05(月) 02:35:32.08ID:k33LLnq0 C#やるしかない、が回答でしょうか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★10 [ぐれ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★9 [ぐれ★]
- トランプ氏「台湾侵攻すれば北京爆撃」“過激予告発言”報道がXで再燃「高市氏の1億倍やばい」 [七波羅探題★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 ★2 [おっさん友の会★]
- 【ペルソナ・ノン・グラータ】中国総領事の早期国外退去を首相に要請へ 自民・保守系グループ「日本の尊厳と国益を護(まも)る会」 [ぐれ★]
- 【Jリーグ】モンテディオ山形 新スタジアム会員、募集停止 資金計画を再調整、年明け再開予定 [鉄チーズ烏★]
- 安倍晋三「円が300円になったらトヨタ車が3分の1で売れる。日本への旅費も3分の1になる。そうすればあっという間に経済は回復していく」 [177178129]
- 中国報道、高市首相を「毒苗」と中傷😡 [399259198]
- 【高市悲報】🇨🇳中国「日本への報復措置? 他にいくらでも方法はある。 まだまだやめないよ」 😨😱 [485983549]
- 【悲報】日本、パンダ0にwwwwwwwwwwww高市さんありがとう🐼 [271912485]
- 高市早苗、約1ヶ月でドル円・10円円安を達成 [256556981]
- 無水カレー作るんやが、何入れたら美味しい?
