关于二进制位操作的问题
作 者: ip928 (赵晓骏) Blog 加为好友
等 级:
信 誉 值: 100
所属社区: .NET技术 C#
问题点数: 20
回复次数: 6
发表时间: 2006-4-24 14:55:24
00101001
怎样获得前4位
第五位
和最后三位?
能不能写出解决方案
copico(苦涩) ( ) 信誉:100 Blog 加为好友 2006-4-24 15:06:53 得分: 2
string data ="00101001";
int []t=new int[8];
char []c=new char[8];
c=data.ToCharArray();
for(int i=0;i<8;i++)
{
t[i]=System.Convert.ToInt32(c[i]);
}
Top
ip928(赵晓骏) ( ) 信誉:100 Blog 加为好友 2006-4-24 15:30:17 得分: 0
00101001是一个字节,不是一个字符串
找到解决方法了。
(byte)(b>>4)前4位((byte)(b<<4))>>7第五位
((byte)(b<<5))>>5最后3位
Top
viena() ( ) 信誉:100 Blog 加为好友 2006-4-24 15:35:56 得分: 3
与
Top
soaringbird() ( ) 信誉:100 Blog 加为好友 2006-4-24 15:36:49 得分: 8
byte b = 41;//00101001
byte f1_4 = (byte)(b >> 4);
Console.WriteLine(f1_4);
byte f5 = (byte)((byte)(b << 4) >> 7);
Console.WriteLine(f5);
byte f6_8 = (byte)((byte)(b << 5) >> 5);
Console.WriteLine(f6_8);
f6_8 = (byte)(b & Convert.ToByte("00000111", 2));
Console.WriteLine(f6_8);
Top
viena() ( ) 信誉:100 Blog 加为好友 2006-4-24 15:39:00 得分: 7
//怎样获得前4位
& 11110000//第五位
& 00001000
//和最后三位?
& 00000111
Top
ip928(赵晓骏) ( ) 信誉:100 Blog 加为好友 2006-4-24 15:54:51 得分: 0
都是高手
Top
作 者: ip928 (赵晓骏) Blog 加为好友
等 级:
信 誉 值: 100
所属社区: .NET技术 C#
问题点数: 20
回复次数: 6
发表时间: 2006-4-24 14:55:24
00101001
怎样获得前4位
第五位
和最后三位?
能不能写出解决方案
copico(苦涩) ( ) 信誉:100 Blog 加为好友 2006-4-24 15:06:53 得分: 2
string data ="00101001";
int []t=new int[8];
char []c=new char[8];
c=data.ToCharArray();
for(int i=0;i<8;i++)
{
t[i]=System.Convert.ToInt32(c[i]);
}
Top
ip928(赵晓骏) ( ) 信誉:100 Blog 加为好友 2006-4-24 15:30:17 得分: 0
00101001是一个字节,不是一个字符串
找到解决方法了。
(byte)(b>>4)前4位((byte)(b<<4))>>7第五位
((byte)(b<<5))>>5最后3位
Top
viena() ( ) 信誉:100 Blog 加为好友 2006-4-24 15:35:56 得分: 3
与
Top
soaringbird() ( ) 信誉:100 Blog 加为好友 2006-4-24 15:36:49 得分: 8
byte b = 41;//00101001
byte f1_4 = (byte)(b >> 4);
Console.WriteLine(f1_4);
byte f5 = (byte)((byte)(b << 4) >> 7);
Console.WriteLine(f5);
byte f6_8 = (byte)((byte)(b << 5) >> 5);
Console.WriteLine(f6_8);
f6_8 = (byte)(b & Convert.ToByte("00000111", 2));
Console.WriteLine(f6_8);
Top
viena() ( ) 信誉:100 Blog 加为好友 2006-4-24 15:39:00 得分: 7
//怎样获得前4位
& 11110000//第五位
& 00001000
//和最后三位?
& 00000111
Top
ip928(赵晓骏) ( ) 信誉:100 Blog 加为好友 2006-4-24 15:54:51 得分: 0
都是高手
Top
string strB = string.Empty;
string strC = string.Empty;
string strD = string.Empty;
for (int i = 0; i < 200; i++)
{
strA += '1';
strB += '0';
}
for (int i = 0; i < 200; i++)
{
strC += Convert.ToChar((Convert.ToByte(strA[i]) & Convert.ToByte(strB[i])));
strD += Convert.ToChar((Convert.ToByte(strA[i]) | Convert.ToByte(strB[i])));
}
System.Console.Write("与操作结果:" + strC);
System.Console.Write("或操作结果:" + strC);