質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

2回答

2259閲覧

データ型と2進数に関して

lleldigm

総合スコア59

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2020/06/06 01:08

編集2020/06/06 01:08

いつもお世話になっています。

2進数についての質問です。

数値を格納するには、int、longなどがあるのですが、
2進数を格納する際、桁数が多くなり桁オーバーになることが多々あります。

例えば「4,294,967,295‬」という数値があったとし、これを2進数に変換し、変数に収めたいとします。

C#

1 2int num = 4294967295; 3string binStr = Convert.ToString(num, 2); 4ulong binNum = ulong.Parse(binStr);//桁オーバーになる

範囲が最も大きいulongに格納しようとしても2進数の場合桁数が多くなるため、格納できません。
2進数を変数に格納し、扱う場合はどのようにするのが慣習なのでしょうか。
宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

これを2進数に変換し、変数に収めたいとします。

何がしたいのでしょうか。このコードがやろうとしていることは、2進数として生成した文字列を10進法として再解釈して整数型の変数に収めようとしています(もとの値が「16」だった場合、10000という文字列から数値に変換するため、「1万」として入ります)。

整数はそのまま変数に入れて、使う側で二進法として解釈する、というのが正しいかと思います。

投稿2020/06/06 01:12

編集2020/06/06 01:15
maisumakun

総合スコア145208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/06/06 01:13

、> 2進数を変数に格納し、扱う場合はどのようにするのが慣習なのでしょうか。 2進法として解釈させてください(この例では数値をそのまま入れればいいだけで、わざわざ2進法を介する必要がありません)。
lleldigm

2020/06/06 01:19

使うときに2進数法として解釈させるといのはどういうことでしょうか intに格納されている数値を2進数で解釈させる記載方法があるんですか?
lleldigm

2020/06/06 01:24

>何がしたいのでしょうか 具体的にはnumの数値は状態異常を表す数値で、2進数にして、ビット演算することで役割を果たす数字なのです。 このようなイメージです→https://qiita.com/rch1223/items/1d76ed8ced6851fe941c なので、数値を2進数にして、そこからビット演算しようと考えていました。
pepperleaf

2020/06/06 01:31

数値をそのまま、ビット演算するだけ。余計な事を考える必要は無いです。
maisumakun

2020/06/06 01:38

もともと内部では2進法になっています。そのままでビット演算してください(10進法として再解釈させると、めちゃくちゃな値になります)。
退会済みユーザー

退会済みユーザー

2020/06/06 02:15

〇〇進数というのは、単に人間が見るための見せ方の違いです。なので、数値型は元の数値型のまま持てばよいです。
lleldigm

2020/06/06 09:24

なるほど!わざわざ2進数に直す必要性がないのですね。ありがとうございます。
guest

0

投稿2020/06/06 02:03

y_waiwai

総合スコア87793

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問