如何把一个字节的高位改变。。比如如果是1的话那么改成零。。
我也没有多少分了。。只能给10分了
我也没有多少分了。。只能给10分了
解决方案 »
- 同一个解决方案内,引用程序集失败??
- 接口不能实现 请教各位前辈!
- 请教高手.关于form中 combobox 的Items 属于的问题
- Interlocked.Increment(ref currentIndex);
- [新手提问]如何从数据库取一个值赋值给一个变量?
- 关于语句的动态生成方式
- 内部类可以用partial class吗
- C# + MapX 创建一个 feature 为什么不成功?
- 怎么知道在windows中已经存在某个控件,比如actskin4.ocx控件?如果没有,就怎么在程序中..
- 请问高手应该怎么读《C# Windows 程序设计》这本书?
- c#如何调用EXCEL宏
- NavigateUrl链接格式问题
再string = convert.tostring(temp,2)l;
再string.replace();
再convert转换回去
b = (b << 4) | (bb >> 4);
?
b = b & 15;
低4位与,只能取低4位,高位得0,但楼主要求高位改变,如果是0,得1
int a;
int b=2147483648;
a = (a + b + b) % (b + b) - b;
但只限于long int short byte uint ulong等整数形
byte b = 0x0;// 现在把其中一位更改,比如要更改第3位为1
int c = 32; // 32就是00100000
b = (byte)(((int)b)|c); // 这里利用逻辑或运算|,来更改值为1// 现在把第三位更改回0
c = 223; // 223就是11011111
b = (byte)(((int)b)&c); // 这里利用逻辑与运算&,来更改值为0
{
int c = 128;
for (int i=1;i<position;i++)
{
c = c/2;
}
// 先把位数改为1,如果数值变化,则说明取反成功,如果数值没有变化,则改为0
byte temp = (byte)(((int)b)|c);
if (temp.Equals(b))
{
c = 255 - c;
temp = (byte)(((int)b)&c);
}
return temp;
}
byte ReverseHigh(byte b)
{
int d = (int)b; // 转化整数
int h = ~(d>>4); // 高位取反
b = (byte)((d&15) + (h<<4)); // d&15是将高位全部置0,然后将h变高位,加起来
return b;
}
不好意思啊。。我可能是我没说明白我的意思是 如果是 0 的话改为 1 反之如果是1的话那么改为 0楼主我前面回复你的是满足你的要求的
byte1 ^ 240
就是对byte1高4位取反,其中240二进制是11110000
也感谢 “viena() 维也纳(windows7) ” 您的意思很正确。。谢谢
{
int i = (int)b;
// 直接高位取反,240就是11110000,这里会将低位全部置0,得到高位
// 15的二进制为00001111,d&15是将高位全部置0,取低位
b = (byte)((~i&240) + (i & 15));
return b;
}