教えて!gooにおける不適切な投稿への対応について

マイナスの進数変換の方法を教えて下さい。

例えば簡単な例で、-6(10進)を

2進と16進であらわすにはどうすれば良い
のでしょうか?

答えだけでなく、考え方、計算方法も教えて
いただければ助かります。

よろしくお願いします。

gooドクター

A 回答 (5件)

まず、2進にするには


マイナスを考えないで、6を2進数の8ビットで考えると
00000110になりますよね??
    ↓で、その値を反転して、
11111001にします。
    ↓それに+1をしたのも、つまり
11111010が(-6)2進数になります。
16進数は、後ろから4桁ずつ区切っていって、
1111と1010に区切られるので、16進数では
1111がFに値し、1010はAに値するので
FAとなります☆
もし、キレイに4桁ずつ区切ることが出来なければ、
前から区切れるように0を足していっちゃって大丈夫です。
だから・・・000011111010みたいな。
この場合、16進表示だと、0FAですかね。

参考になれば♪
    • good
    • 2

私はNo.1さんに賛成ですけど、どうなんでしょう。



参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=707373
    • good
    • 0

nビットのx進数で最上位ビットが符号という意味ならば、


考え方は、足して0になるようにする、つまり補数表現
ですね。
2の補数であれば、6が、8桁の00000110として、
-6は、11111010とすれば、足してみれば
00000000になりますね。
9桁目(ここでは一番左)は、桁あふれで無視します。
ここでの8桁目は正負を表わす符合になります。
16進は、2進数をそのまま「FA」と読めばいいですね。

参考URL:http://www.pursue.ne.jp/jouhousyo/sysad/sysad010 …
    • good
    • 0

普通に考えたら、基数変換するだけなので、


-6(10進)は、
-110(2進)
-6(16進)だと思いますが

多分、コンピュータ上での補数表現について言っているのだと思います
この場合、数値を表現するサイズが重要です。
例えば1バイトで表す時には、
-6(10進)は
256-6=250(10進)=FA(16進)=11111010(2進)
です。
2バイトの場合は
65536-6でやります。
ようは、指定したサイズで表現できる数の数(1バイトの時は0~255で256個)-その数というように覚えればいいと思います。
    • good
    • 0

マイナスでなければ、進数変換のやり方はご存知なのでしょうか?



結局、負の数であっても同じことで、絶対値をとって進数変換して、最後に符号をつけるだけだと思うんですが。(違うのかなぁ)

ex1) -6(10進)を2進に
6=2^2+2= 110(2進)なので
-6(10進)=-110(2進)

ex2) -18(10進)を16進に
18=16+2=12(16進) なので
-18=-12(16進)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング