它跟VFP的BITAND作用相符吗?
前后比较的BitArray是不是长度要一样
前后比较的BitArray是不是长度要一样
解决方案 »
- C# serialport数据接收不全的问题?
- activePDF Toolkit都支持什么格式文件的PDF装换
- C#海康SDK开发
- datagridview中数据导出到excel问题?
- 请问DataGrid的哪个属性可以使DataGrid每一列的列宽自动调整为我数据库中列的宽度?
- .net C/S中控件的问题!
- 如何安装微软宠物商店的数据库
- C#调用VC ActiveX控件的问题
- 一个扩充拨号类
- 如何知道一条join表的sql语句里各自表名?
- 谁有项目做,我来帮忙!
- 在WINFORM里有有一个dataGrid1,本来它的DataSource=dt,FORM上有一个按钮"查询",按下后dataGrid1.DataSource=ddd,也就是绑定到另外一张表
不过注意它的数据顺序
没错是这样定义,但是如果是int类型的变量如何转为BitArray
int ti=1000;
那如何实现ti和1111的按位 AND 运算
对当前 BitArray 中的元素和指定的 BitArray 中的相应元素执行按位 AND 运算。如果两个操作数均为 true,则按位 AND 运算返回 true;如果一个或两个操作数为 false,则按位 AND 运算返回 false。下列示例说明如何将 AND 应用于两个 BitArray 实例。[Visual Basic]
Imports System
Imports System.Collections
Imports Microsoft.VisualBasicPublic Class SamplesBitArray
Public Shared Sub Main()
' Creates and initializes two BitArrays of the same size.
Dim myBA1 As New BitArray(4)
Dim myBA2 As New BitArray(4)
myBA1(1) = False
myBA1(0) = False
myBA1(3) = True
myBA1(2) = True
myBA2(2) = False
myBA2(0) = False
myBA2(3) = True
myBA2(1) = True
' Performs a bitwise AND operation between BitArray instances of the same size.
Console.WriteLine("Initial values")
Console.Write("myBA1:")
PrintValues(myBA1, 8)
Console.Write("myBA2:")
PrintValues(myBA2, 8)
Console.WriteLine()
Console.WriteLine("Result")
Console.Write("AND:")
PrintValues(myBA1.And(myBA2), 8)
Console.WriteLine()
Console.WriteLine("After AND")
Console.Write("myBA1:")
PrintValues(myBA1, 8)
Console.Write("myBA2:")
PrintValues(myBA2, 8)
Console.WriteLine()
' Performing AND between BitArray instances of different sizes returns an exception.
Try
Dim myBA3 As New BitArray(8)
myBA3(0) = False
myBA3(1) = False
myBA3(2) = False
myBA3(3) = False
myBA3(4) = True
myBA3(5) = True
myBA3(6) = True
myBA3(7) = True
myBA1.And(myBA3)
Catch myException As Exception
Console.WriteLine("Exception: " + myException.ToString())
End Try
End Sub
Public Shared Sub PrintValues(myList As IEnumerable, myWidth As Integer)
Dim myEnumerator As System.Collections.IEnumerator = _
myList.GetEnumerator()
Dim i As Integer = myWidth
While myEnumerator.MoveNext()
If i <= 0 Then
i = myWidth
Console.WriteLine()
End If
i -= 1
Console.Write(ControlChars.Tab + "{0}", myEnumerator.Current)
End While
Console.WriteLine()
End Sub
End Class' This code produces the following output.
'
' Initial values
' myBA1: False False True True
' myBA2: False True False True
'
' Result
' AND: False False False True
'
' After AND
' myBA1: False False False True
' myBA2: False True False True
'
' Exception: System.ArgumentException: Array lengths must be the same.
' at System.Collections.BitArray.And(BitArray value) in <UnknownName>:line
' at SamplesBitArray.Main()[C#]
using System;
using System.Collections;
public class SamplesBitArray { public static void Main() { // Creates and initializes two BitArrays of the same size.
BitArray myBA1 = new BitArray( 4 );
BitArray myBA2 = new BitArray( 4 );
myBA1[0] = myBA1[1] = false;
myBA1[2] = myBA1[3] = true;
myBA2[0] = myBA2[2] = false;
myBA2[1] = myBA2[3] = true; // Performs a bitwise AND operation between BitArray instances of the same size.
Console.WriteLine( "Initial values" );
Console.Write( "myBA1:" );
PrintValues( myBA1, 8 );
Console.Write( "myBA2:" );
PrintValues( myBA2, 8 );
Console.WriteLine(); Console.WriteLine( "Result" );
Console.Write( "AND:" );
PrintValues( myBA1.And( myBA2 ), 8 );
Console.WriteLine(); Console.WriteLine( "After AND" );
Console.Write( "myBA1:" );
PrintValues( myBA1, 8 );
Console.Write( "myBA2:" );
PrintValues( myBA2, 8 );
Console.WriteLine(); // Performing AND between BitArray instances of different sizes returns an exception.
try {
BitArray myBA3 = new BitArray( 8 );
myBA3[0] = myBA3[1] = myBA3[2] = myBA3[3] = false;
myBA3[4] = myBA3[5] = myBA3[6] = myBA3[7] = true;
myBA1.And( myBA3 );
} catch ( Exception myException ) {
Console.WriteLine("Exception: " + myException.ToString());
}
}
public static void PrintValues( IEnumerable myList, int myWidth ) {
System.Collections.IEnumerator myEnumerator = myList.GetEnumerator();
int i = myWidth;
while ( myEnumerator.MoveNext() ) {
if ( i <= 0 ) {
i = myWidth;
Console.WriteLine();
}
i--;
Console.Write( "\t{0}", myEnumerator.Current );
}
Console.WriteLine();
}
}
/*
This code produces the following output.Initial values
myBA1: False False True True
myBA2: False True False TrueResult
AND: False False False TrueAfter AND
myBA1: False False False True
myBA2: False True False TrueException: System.ArgumentException: Array lengths must be the same.
at System.Collections.BitArray.And(BitArray value) in <UnknownName>:line 0
at SamplesBitArray.Main()
如何是字符串"12"转为二进制的字符串"1010"
是这样吗
byte[] aa=Encoding.Unicode.GetBytes("12");
但是如何把aa是byte[]类阿
string bb=Encoding.Unicode.GetString(aa);
bb有变回"12"了,我想要的是"1010"
如果你要转的是数字的话比较简单的。
下面是2中实现的方法,我已经测试通过了
try
{
/*(1)
int a=Convert.ToInt16(this.textBox1.Text.Trim());
string aStr = Convert.ToString(a,2);
MessageBox.Show(s);
*/
(2)
int a = Convert.ToInt16(this.textBox1.Text.Trim());
string aStr = string.Empty;
while( a!=0 )
{
if( a%2 == 0 )
aStr = "0"+aStr;
else
aStr = "1"+aStr;
a /= 2;}
MessageBox.Show(aStr);
}
catch
{}
y = 6 && 0110 binary? BITAND(x,y) && Returns 2, 0010 binary
byte b=Convert.ToByte("0110",2);
byte c=(byte)(a&b);
MessageBox.Show(c.ToString());
这样返回的结果就是2