# Chapter2-1 「2進数の計算と数値表現」 ## 4/2(金) ###### tags:`基本情報技術` さつき: - 2進数の足し算と引き算 * コンピュータには引き算の概念がない * 引き算ダメなら足し算で→引き算を知らなくても、「負の数」を表現できれば! - 負の数の表現方法(やり方はさまざま) * 「先頭の1ビット」は符号にするね * 補数。 * 123 3桁の最大値999 999-123=876 876が補数。 * 「いくつ足せば、次の桁に繰り上がる」というのが補数。 * * 過去問 * 問2のレベル。。 * 2の補数とは、負の数の表現方法の1つ * 2進数の各ビットを反転させて、1加算したものです。 * 正負が逆の数値になります。 * 10進数の3を4ビットの2進数で表現すると、0011 * 各ビット反転...裏返す感じ?? * これに1加算すれば、1101これが-3。不思議な世界だ。 * 問3なんだろう。 * 最下位2ビット→なんでもいいから例を考える * 3ビットの2進数を想定→111,110,101,100,011,010,001,000 * にわ: - 読み込み * コンピュータは足し算しかわからないので、負の数を定義する必要がある * 定義方法は色々あるけど、一番単純なのは先頭の1ビットを符号とすること * これでできない部分を補う「補数」という考え方がある -> 次の桁に繰り上がるための数。 * 2進数だと、「2の補数」で次の桁に繰り上がるから、コンピュータはこれを負の数を表すのに使う。 * 「2の補数」は各ビットを反転させて、最後のビットに+1したもの。(ex:1011 -> 0101) * - 過去問 * 問2むずすぎる * 考え方:とりあえず桁数の少ない4ビットと置いて、全部2進数で書いてみれば解ける感じ? * 「1111」の2の補数は「0001」->これを10進数に直すと1になる->「1111」の反転?が「1」なので、「1111」は-1、ということみたい。 * 問3 ガチで意味わからんです * 「補数」の概念を理解する必要がありそう->[補数表現とは?1の補数と2の補数の違いと計算方法まとめ](https://proengineer.internous.co.jp/content/columnfeature/6254) > 補数を使うことによってもたらされる最も大きなメリットは、「マイナス記号を使わずに負の数を表現することができる」 * x - y を求めたい場合:xに「yの補数」を足しちゃって、その時繰り上がった最上位の桁を取り除くと答えになる。 * ex: 1234 - 1111 の場合、 1234 + 8889 = 10123 -> 最上位の「1」を取り除くと、元の答えとなる「123」が導き出せる。 ちさと: - コンピュータに引き算させるときは、足し算を使う - 負の数の表し方 * 先頭の1ビットが0→正の数 * 先頭の1ビットが1→負の数 - 補数 * 補う数 * 「123」 999(3桁の最大値) - 123 = 876(いくつ足せば123になるか) これを9の補数という * 1000(次の桁に繰り上がる数) - 123 = 877(いくつ足せば123になるか) これを10の補数という - 過去問 * (そもそも2進数の計算がわかっていない。。チャプター1やろう) *
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up