2017-12-29 47 views
0

質問がありますが、C#でバイナリ文字列をint型に変換するにはどうしたらよいですか?私はこれを使用する場合たとえば、私は、この文字列を変換する「0000」は、このint型0000バイナリ文字列を同じ表現でintに変換する

へ:

string str = "0000" ; 
int num = atoi(str.c_str()); 
cout <<num << endl; 

を私は数0を得たが、私は数0000

+5

数値を格納int'アンを '。 「0」、「0000」、「00000000」はすべて同じ数値(ゼロ)を持ちます。あなたは 'int'だけで区別を保存することはできません。区別が重要な場合は、 'string'としてください。 –

+0

私は整数マスクで作業しているので区別を保持したいいくつかの数字の間にいくつかのコンパイオンをしなければならず、文字列マスクを扱う方法がわかりません。私の他の質問は次のとおりです:https://stackoverflow.com/questions/48000038/choose-some-numbers-coding-in-gray-code/48000234?noredirect=1#comment83002344_48000234 –

+0

@RedOneマスク「0000」は同じです「0」との違いはありません。 – NathanOliver

答えて

0

が必要になりますしたいですsetfillマニピュレータを使用して書式設定ロジックを追加してください。

#include <iostream> 
#include <iomanip> 

int main() 
{ 

    for(int n = 0; n <= 1000; n = n + 100) 
    { 
    std::cout << "default: " << std::setw(4) << n << '\t' 
     << "setfill('0'): " << std::setfill('0') 
     << std::setw(4) << n << '\n'; 
    } 

    return 1; 
} 

これは、次のような出力生成されます:

default: 0 setfill('0'): 0000 <-- Desired formatting when value is 0 
default: 0099 setfill('0'): 0099 
default: 0198 setfill('0'): 0198 
default: 0297 setfill('0'): 0297 
default: 0396 setfill('0'): 0396 
default: 0495 setfill('0'): 0495 
default: 0594 setfill('0'): 0594 
default: 0693 setfill('0'): 0693 
default: 0792 setfill('0'): 0792 
default: 0891 setfill('0'): 0891 
default: 0990 setfill('0'): 0990 
+0

これはいいアイデアです。これから始める。 –

関連する問題