TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
DarkBASIC
【知識】俺のためのプログラム覚え書き【共有】
プログラマが使ってはいけないテキストエディタ
【モダン推奨】Perlについての質問箱 50箱目
プログラマは大卒じゃないと就活厳しいってホント?
マルチスレッドプログラミング相談室 その9
くだらないアルゴリズムを考えるスレ
Perlについての質問箱 64箱目
この先き主流となる言語
Java/C++ VS C# どっちが好きか教えて
68 :
>>67
勝手に、というか、歴史的なものでもあるんだが、そもそもコンピュータは符号について考慮できない。
というのはビットのON/OFFしかないからだ。かといって計算ではマイナスの値も考慮する必要がある。
ということで色々あって、結局今のコンピュータでは高速に計算する場合はこういう手法を使うことになった。
(低速になってもいいが精度が必要な場合にBCDにするとか、他の方法もあるがちょっとそれは置いておく)。

1. 0/1が表せるビットを束ねてまとめて2進数として大きな数値も表せるようにする。
2. 0の時は全てのビットが0になる。
3. 0の状態で1を引いた時、つまり-1は全ビットが1になる。
4. 更に1引いた場合は符号なし整数の時と同じ計算で1を引く。
5. 1番上のビットが1の場合はその値はマイナス、0の場合はプラス。

なので例えば8bit符号付整数は -128 〜 127 までが表せるが、-128の時は2進だと 10000000 になっている。
127 は 01111111 になっている。

画面に10進数に変換して出す場合はまず最上位ビットを見て1ならばマイナス記号を出しプラスならば何も出さない。
次に最上位ビットが1ならば全ビットを反転させた後に1を足す(符号をマイナスからプラスに変換する)。
その後10で割った余りを数字の文字に変換して出し10で割るというのを0になるまで繰り返すが、これだと
逆順になるので再帰処理にするかバッファに入れておいて逆順に出すか少しテクニックが必要。

Vue vs React vs Angular Part.3
【DDD】ドメイン駆動設計【エリック・エヴァンス】
Win32API質問箱 Build124
Visual Studio 2017 Part6
【アンチ】関数型言語は使えない【玩具】 2
PureBasic
【ActionScript3】Webツールを作ろう【GPL】
C++相談室 part138
C++相談室 part138
ふらっと C#,C♯,C#(初心者用) Part127
--------------------
【京アニ火災】確保の41歳男、やけどは広範囲に 容体急変の恐れも
ハードオフにありがちなこと 三十八店舗目【ワ無】
【大地を震わす】早押しクイズスレ・17【火花】
マリンスポーツ
アホノミクスの次はサマータイム導入で国民虐待
メドベアンチスレ960
土木系学科の大学ランキング
中東和平成立
チルアウト・ダウンテンポ
■■■■■■■ ■■■■■■■■
九州でも(;´Д`)ハァハァできるもん!弐千壱百陸拾九
晴れのち100%(・∀・)part76
ユニビ避難所37
カートコバーンになりたいんだ
【20年公開】るろうに剣心111【人誅編,追憶編】
失敗作だったオーディオ技術
STAR帰ってきたCCM+の使いかって 2
【サクラから】危険なサイトまとめ【メール2通目】
【売国】安倍首相に忖度 北方領土「返せ」が集会から消えた
【Flash】SSD Part203【SLC/MLC/TLC/QLC】
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼