ここから本文です

excelでの計算方法の質問です。 10進数を2進数にしたり16進数にしたりする B...

maz********さん

2018/11/3013:34:55

excelでの計算方法の質問です。

10進数を2進数にしたり16進数にしたりする BIN2DEC などは桁数が多いと
エラーになります。

そこで電卓のような制限が少ない方法を検索し
いろいろ参考にして計算してみました。 ところが計算値が1少ないという結果になってしまい
修正法がわかりかねるので質問させていただきます。

具体例として 変換データをA1セルに入れておくとして

10進数の30000を2進数にすると DEC2BIN(A1512)&DEC2BIN(MOD(A1,512),9)

で計算させると こたえは 111010100110000

しかしながら30002を算させると 111010100110001となってしまいます。

当然これを10進数に直すと30001となってしまうのでどこかがおかしいのだと思います。

単純に1を付加するようにすると30000のような数字では1多くなってしまうのでどこかで
計算過程で少なくなっていると思われます。

間違っていると声尾がご指摘いただけると助かります。
また、ほかの方法がるようでしたら教えていただきたくお願いいたします。

閲覧数:
51
回答数:
2
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

all********さん

2018/11/3013:45:16

=DEC2BIN(INT(A2/2^9), 9)& DEC2BIN(MOD(A2, 2^9), 9)

=DEC2BIN(INT(A2/2^9), 9)& DEC2BIN(MOD(A2, 2^9), 9)

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2018/12/2 23:40:25

今回、普段は問題にならない計算が進数の変換に微妙に作用することがわかりました。また、関数の組み方もいろいろが必要だということで参考になりました。ありがとうございました。

ベストアンサー以外の回答

1〜1件/1件中

アバター

ID非公開さん

2018/11/3021:52:21

A1セルに元の10進数を入れて、
=DEC2BIN(A1/512)&DEC2BIN(MOD(A1,512),9)
として計算されたということでしょうか?
30002ではなくて、例えば 30001.5 のような小数値が入っていて、小数点以下の桁数が0であるため 30002 に丸めて表示されているということはありませんか?

=DEC2BIN(A1/512)&DEC2BIN(MOD(ROUND(A1,0),512),9)
としても結果は同じかどうか御確認ください。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる