关于二进制位操作的问题

仓木泽 2006-04-24 02:55:23
00101001
怎样获得前4位
第五位
和最后三位?
能不能写出解决方案
...全文
145 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
仓木泽 2006-04-24
  • 打赏
  • 举报
回复
都是高手
viena 2006-04-24
  • 打赏
  • 举报
回复
//怎样获得前4位
& 11110000

//第五位
& 00001000


//和最后三位?
& 00000111
soaringbird 2006-04-24
  • 打赏
  • 举报
回复
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);
viena 2006-04-24
  • 打赏
  • 举报
回复
仓木泽 2006-04-24
  • 打赏
  • 举报
回复
00101001是一个字节,不是一个字符串
找到解决方法了。
(byte)(b>>4)前4位

((byte)(b<<4))>>7第五位
((byte)(b<<5))>>5最后3位
copico 2006-04-24
  • 打赏
  • 举报
回复
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]);
}

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧