二进制值的数据类型是什么?它是字符串数据类型吗?

问题描述:

什么数据类型做二进制(1的和0的)有?在一个例子中,我将它们看作具有字符串作为数据类型。二进制值的数据类型是什么?它是字符串数据类型吗?

从这我知道字符串不用于执行计算的变量。

因此,当两个二进制变量的数据类型为字符串,并且它们可以互相操作时,该怎么做?

+1

我觉得问题本身有很多问题。一个0/1是一个布尔值(假/真),其中几个可以存储在一个BitArray中或作为一个字节中的一个位。几个字节需要一个字节数组(Byte [])。但是,由于它只是一堆比特,因此可以使用_no_ numeric(加法,减法,乘法,除法)运算符,并且任何人都无法知道它们是整数,单精度浮点数还是数字系统被发明。使用非二进制类型(String)中的二进制值的代码很糟糕。 – sisve 2014-10-20 06:13:29

感谢您的澄清。当您将二进制值转换为字符串时,由于值不再是数字,因此放弃了直接乘法的能力(string s = "3" * "4";也不起作用)。您必须将这些值转换为数字数据类型才能执行数学运算,然后返回字符串进行显示。

string b1 = Convert.ToString(3, 2); 
string b2 = Convert.ToString(4, 2); 
string product = Convert.ToString(Convert.ToInt32(b1, 2) * Convert.ToInt32(b2, 2), 2); 
Console.WriteLine(product); // 
Console.WriteLine(Convert.ToInt32(product, 2)); 
+0

我的意思是:例如。字符串binaryValue = ConvertToString(217,2);现在我们已经将整数转换为保存在字符串变量中的二进制形式。现在让我们说我们有类似的另一个字符串值binaryValue2。现在这两个都是2个整数的二进制表示。如果需要,他们将如何对它们进行数学运算?例如。 binaryValue * binaryValue2。为什么从整数转换时它们保存为字符串?他们可以有任何其他数据类型吗?如果没有,y? – 2014-10-20 03:55:30

+0

因为您使用了ConvertToString。 – 2014-10-20 04:05:18

+0

好的。那么我需要使用什么来将二进制形式的整数转换为可以对其执行计算的整数? – 2014-10-20 04:07:19

没有数据类型“binary”。有一类,它允许您处理位BitVector32

或者你可以简单地从string(文本)转换成二进制值到int

//       binary , base 
int binary = Convert.ToInt32("00000101", 2); 

如果你可以创建一个Binary类真的想要然后超载运营商,像这样:

public class Binary 
{ 
    private int value; 

    public Binary(int value) 
    { 
     this.value = value; 
    } 

    public static implicit operator Binary(string b) 
    { 
     return new Binary(Convert.ToInt32(b, 2)); 
    } 

    public static explicit operator int(Binary b) 
    { 
     return b.value; 
    } 

    public static Binary operator +(Binary a, Binary b) 
    { 
     return new Binary(a.value + b.value); 
    } 
} 

然后有这个

Binary bin1 = "0001"; // 1 
Binary bin2 = "0010"; // 2 

Binary result = bin1 + bin2; // 3 

int integerResult = (int)result; // 3 
+0

,然后在程序中使用intergerResult,只要我需要添加这些特定的binariy值,对吧?每次我们输入要加入二进制类的二进制文件,它都会进行计算,并以二进制形式再次将这些值转换回来,并向我们提供这些信息,对吧? – 2014-10-20 05:57:16