在c ++中将Int32转换为二进制

时间:2015-01-05 10:00:36

标签: c++-cli string-parsing

在网上搜索后,我在这里寻求帮助

我正在使用托管C ++开发Windows Forms中的学校项目。 我的问题是我有一个Int32值,我需要使用System :: Convert将其转换为二进制值,但我不知道如何正确使用它。

我试过这样做:

convertit = Int32::Parse(str);
static unsigned char ToByte(convertit);

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

System :: Convert可以用于两种转换,因为它支持base 2:

#include "stdafx.h"

using namespace System;
using namespace System::Diagnostics;

int main(array<System::String ^> ^args)
{
   // see http://msdn.microsoft.com/de-de/library/swz6z5ks%28v=vs.110%29.aspx
   int i = System::Convert::ToInt32("101", 2);
   Debug::Assert(i == 5);
   // see http://msdn.microsoft.com/de-de/library/14kwkz77%28v=vs.110%29.aspx
   System::String^ s2 = System::Convert::ToString(i, 10);
   Debug::Assert(s2 == "5");
   return 0;
}

请注意,microsoft在他们的文档中没有提到“radix”这个词,但是对于进一步搜索来说似乎很方便,请参阅Positional notation - stackoverflow在搜索“radix conversion”fe时提供了很多。< / p>

一般来说,如果找不到cli示例,我建议总是用另一种.net语言搜索一个例子。

答案 1 :(得分:0)

我找到了解决方案。我需要做的只是

         // Binary button checked
         if(this->radioButtonBin->Checked==true)
         { 
         int nb = System::Convert::ToInt32(str, 2);
         this->textBoxClosed->Text=nb.ToString();
         }

         // Decimal button checked
         else
         {
         int nb = Convert::ToInt32(str, 10);
         String^ nb1 = System::Convert::ToString(nb, 2);
         this->textBoxClosed->Text=nb1;
         }