No.4ベストアンサー
- 回答日時:
コンピュータ内部で一般に正負の数を固定小数点形式で扱う場合には2の補数形式で表されます。
小数点位置が何処にあるかは人が適当に仮定しますが、基本はCPUでの整数演算です。
その場合、16ビット表現では-32768...0...+32767が表されます。
最上位ビットの重みは-2**15=-32768,その他のビットの重みは右から0,1,2...n,..ビットは1,2,4,...2**n,...の重みを持っており、それらの各ビットの重みの和が表している数値となります。
負の数を表す場合、先ず正の数を考えてその1の補数を作り(全ビット1<==>0反転)最下位ビットに1を加えた形となります。
このようにしておけば加減算が正負の数を意識しないで統一的に処理出来るし、16,32,64ビットの固定小数点(整数も含む)の相互変換は最上位の符号ビットを左に拡張する、或いは上位の符号ビット部分を削除するなどで容易です。
質問に記されている小数点位置15ビットの-0.25は次のように表現されます。
0.25 = 0010 0000 0000 0000
同上1の補数形
= 1101 1111 1111 1111 = 0xdfff
最下位ビットへの1の加算
= 1110 0000 0000 0000 = 0xe000
以上のように表されます。
各ビットの重みを考えて十進数に戻すと、符号ビット=-1,
その右...のビットは1/2,1/4,1/8 の重みを持っているので
-1 +1/2 +1/4 = -1 +3/4 = -1/4 = -0.25
のようになります。
加減算の場合は小数点位置が変わらず簡単ですが、乗算の時は16bit*16bit=32bitとなり、その結果を16bitの少数として求めるには32bit中のどの部分の16bitを取り出すかは人が意識してシフト演算で取り出す必要があります。
次等を参照下さい。
http://ja.wikipedia.org/wiki/コンピュータの数値表現
No.5
- 回答日時:
そのシステムが「2の補数」を使っているのなら、加減算は符号を意識しないでできるのだから、単純に 0-0.25 を計算してみれば良いんです。
(1)0000 0000 0000 0000
- 0010 0000 0000 0000
-----------------------
1110 0000 0000 0000
最初に(1)と書いたのは、そのままでは引き算できないので、先頭に1があるものと仮定して計算します。この1はボロー(借り)として、CPUのキャリー/ボロー フラグに記録される数です。結果はNo.2回答と同じです。
ただ、実数計算の場合(浮動小数点実数計算の場合)、負数は単純に符号ビットを反転するだけのシステムもあるので、その場合は質問者さんの考えた通りになります。(たぶん固定小数点では、こんなシステムはないと思いますが。)
No.3
- 回答日時:
う~む、どうなっているんだろう。
固定小数点に少数があるわけ無いでしょうに。整数ですよ。
-32768~32767までしか表せません。
浮動小数点であれば、指数と少数に分ける必要があります。
なお、符号ビットは符号だけで1ビットを使っているという考えは
誤りです。
16ビットでしたら 0x0000~0xffffまでの間、符号ビットがオンになる
コードを負数に割り当てていると考えるべきです。
割り当て方は色々ありますが、2の補数というのが今は固定していると思います。
つまり-1なら1の0x0001を反転して0xfffeとしプラス1し0xffffしたものが-1の
2の補数表現ということです。
もっとも、自分で専用のクラスでも作って、固定小数点で
データを保持するけども、小数部を持つという特殊なフォーマットに
することは可能です。
これはデータだけでなくクラス内のメソッドもフォーマットの一部と
言えるでしょうけど。
No.2
- 回答日時:
> 最上位(15)ビットが符号ビットで14~0ビットが少数部という
> データフォーマットだった場合、
小数点をどこで固定するか?なんかによってフォーマットは変わりますから、
> -0,25を表すとしたら、
> 0.25に符号ビットをセットした値=0xA000( 1 010 0000 0000 0000 )
> になる
必ずそうなるなんて保証が無いです。
前提条件として、表す数は1未満の小数で、14ビット=1/2、13ビット=1/4とかって事になってるのなら合ってるって事になるかも知れません。
> 16ビットの符号付固定小数点
って条件だけだと、
15ビット:符号、14ビット~8ビット:整数部、7ビット~0ビット:小数部
15ビット:符号、14ビット~12ビット:整数部、11ビット~0ビット:小数部
15ビット:符号、14ビット~0ビット:数値部(小数部)、表す数は-0.32768~+0.32768の0.00001刻み
どんなのだってあり得ます。
No.1
- 回答日時:
残念ながら違いますね。
符号付固定小数点というのは、符号(1ビット):整数部(8ビット):小数部(7ビット)という具合に並べて、全部で16ビットです。
詳しくは以下のリンクを参照してください。
参考URL:http://www2.muroran-it.ac.jp/circle/mpc/front/ol …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 情報処理技術者・Microsoft認定資格 情報技術の問題についてです。 10進数の−36を以下のような16ビットの浮動小数点表示にするといくつ 3 2022/05/21 19:53
- 数学 以下の問題が分かりません。 8ビット浮動小数点数が、最上位ビットから順に符号1ビット、指数部3ビット 4 2023/07/22 16:06
- 計算機科学 6ビット(符号含む)の二進数 4 2023/04/16 13:22
- C言語・C++・C# ハミング符号の解読について 1 2023/05/06 00:20
- 物理学 電磁気学での質問です。 電荷のない空間ではポテンシャルの極大点, 極小点が存在しないことを証明せよ. 3 2023/05/12 22:39
- 数学 二次関数 符号の判定 (4)です。判別式Dよりx軸との交点で符号が定まると教えてもらったのですが、一 5 2022/08/23 22:11
- 計算機科学 ビット計算 2 2023/04/16 14:26
- 数学 ごめんなさい l=⎡-log2P(ai)⎤ と 1 2022/12/05 12:25
- 工学 疑似乱数生成器 3 2023/01/05 02:06
- 数学 数字 絶対値の記号は絶対値そのものを表しているのではなく、ただ、符号も含めた原点からの距離を表してい 8 2022/04/24 14:34
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PCでは受信できるがスマホで受...
-
これ、IT用語で何と呼びますか?
-
ユニクロの RFID
-
私は、学校の探求活動について...
-
パソコンが開発された原因は男...
-
iso ファイルを作成する方法を...
-
アレクサに正しく伝えたい。 『...
-
自分だけ見るurlを作って閲覧
-
業務改善について
-
開発コストの見積もりに関して...
-
赤信号歩行者に対するPayPayか...
-
シェルではコマンドと呼ぶもの...
-
Windows標準のメモ帳でファイル...
-
Win11にしたら有線のイヤホンか...
-
win10を使用しています。w...
-
Chromebookの保管庫の動線がむ...
-
Outlook 2010が開かなくなりま...
-
PythonとPowerShellってどちら...
-
Pythonをbashやコマンドプロン...
-
「PythonはC言語並の速さに出来...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL16進⇒浮動小数変換したい
-
エクセルVBAで xlOn xlOff の切替
-
6ビット(符号含む)の二進数
-
エクセルでビット1をカウント J...
-
ALUのオーバーフローフラグの生...
-
2ビット、3ビット、4ビットのグ...
-
SSDのデータがビット落ちにより...
-
16ビットの符号付固定小数点...
-
データ量の単位について教えて...
-
基本情報技術者試験のビットに...
-
9ビットの2進数を符号付整数…
-
基本情報処理技術者試験問題が...
-
2進数の問題
-
情報科学について!進数変換の...
-
仮想通貨の取引所について
-
基本情報技術者試験問題
-
【有効数字について】 授業で、...
-
KBのMB違いって
-
文字の容量(サイズ)についての...
-
携帯電話の略語であるMBって英...
おすすめ情報