2014-10-20 178 views
3

什麼數據類型做二進制(1的和0的)有?在一個例子中,我將它們看作具有字符串作爲數據類型。二進制值的數據類型是什麼?它是字符串數據類型嗎?

從這我知道字符串不用於執行計算的變量。

因此,當兩個二進制變量的數據類型爲字符串,並且它們可以互相操作時,該怎麼做?

+1

我覺得問題本身有很多問題。一個0/1是一個布爾值(假/真),其中幾個可以存儲在一個BitArray中或作爲一個字節中的一個位。幾個字節需要一個字節數組(Byte [])。但是,由於它只是一堆比特,因此可以使用_no_ numeric(加法,減法,乘法,除法)運算符,並且任何人都無法知道它們是整數,單精度浮點數還是數字系統被髮明。使用非二進制類型(String)中的二進制值的代碼很糟糕。 – sisve 2014-10-20 06:13:29

回答

0

感謝您的澄清。當您將二進制值轉換爲字符串時,由於值不再是數字,因此放棄了直接乘法的能力(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

4

沒有數據類型「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

相關問題