如何求出一个字节的最高位是0还是1

jackcong 2007-08-12 05:33:55
刚才在CSDN的另一个版面上看到一个问题。。

请写一段代码,按字节读取文件RecordVoc,然后判断每个字节的最高位是0还是1。如果最高位是0,则将它改为1;如果最高位是1,则将它改为0;然后将修改过最高位的字节写入另外一个文件NewVoc。”

问题是我在C#中可以按字节读取。。但是如果求它的最高位是0还是1呢。。请各位指点一二。。。
...全文
1285 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackcong 2007-08-12
  • 打赏
  • 举报
回复
over 。。。
Thanks for jobine !
Thank you !
jobine 2007-08-12
  • 打赏
  • 举报
回复
一个字节有8bits, 像这样|1|2|3|4|5|6|7|8|,在内存中1是最高位,8是最低位。比如0x80他的二进制就是1000 0000,用0x80和任何一个字节与,得到的就是这个字节的最高位后面跟着7个0。如果结果大于0,那么高位就是1,反之则是0。
jackcong 2007-08-12
  • 打赏
  • 举报
回复
to: jobine(愚人渡)
谢谢你的回答。。但是我想问一下。。最高位和最低位的概念是什么。。。?能说 的详细点吗?为什么和 0x80 做 “与”操作呢???
jobine 2007-08-12
  • 打赏
  • 举报
回复
byte b = ....;
if (b & 0x80 > 0) //最高位字节==1
...
else //最高位字节==0
...
jackcong 2007-08-12
  • 打赏
  • 举报
回复
怎么没人回答呢。。高手都到哪里去了。。。?

110,535

社区成员

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

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

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