public class TestBit {
/**
* @param args
* 二进制的负数表示法:如果是32位的机器,则对原数取反+1
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int n = 30;
System.out.println(Integer.toBinaryString(n));// 11110
System.out.println(Integer.toBinaryString(-n));// 11111111111111111111111111100010
int s = n & -n;
System.out.println(Integer.toBinaryString(s));// 10
n = n - (n & -n);
System.out.println(s);// 2
}
}
引用
文中2'k代表2的k次方
1 除以2的k次幂可以用位运算:
n/2'k == n>>k
2 对2的k次幂取余数可以用位运算:
n%2'k == n & ((1<<k)-1)
比如 100%32
100的二进制为 1100100
((1<<5)-1)等于31为 0011111
两个数相与即得 100,故
100%32 = 4
3 对于整数n,从低位开始,把它的第k位(0<=k<=31)置为1的操作为:
n = n | (1<<k)
4 对于整数n,从低位开始,把它的第k位(0<=k<=31)置为0的操作为:
n = n & ~(1<<k)
5 对于整数n,从低位开始,测试它的第k位(0<=k<=31)是否为1,若为1,返回一个大于0的数,否则返回0
return n & (1<<k)
6 对于整数n,判断它是奇数还是偶数
若n & 1大于0,则n是奇数,否则n是偶数
7 对于整数n,若n是奇数,则把n减1变成偶数,若n是偶数,则把n加1变成奇数
n = n ^ 1
8 对于奇数n,有如下性质
(n-1) ^ n ==1
9 最大的int
01 1111111111 1111111111 1111111111
MAX_INT = ~(1<<31)
10 最小的int
10 0000000000 0000000000 0000000000
MIN_INT = (1<<31)
11 把最低位的1变为0
比如: 111000 ---> 110000
n = n - (n&-n)
12 判断两个整数数是否同号
#define MASK 0x80000000
flag = (x & MASK) ^ (y & MASK)
如果flag为0,说明不同号,否则同号
13 交换两个值,不用临时变量
想将a和b的值互换,可以用以下赋值语句实现:
a=a∧b;
b=b∧a;
a=a∧b;
分享到:
相关推荐
二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据
c#读取二进制文件c#读取二进制文件c#读取二进制文件c#读取二进制文件c#读取二进制文件c#读取二进制文件
由于二进制数在C#中无法直接表示,所以所有二进制数都用一个字符串来表示 例如: 二进制: 1010 表示为 字符串:”1010″ int d = 10; //十进制转二进制字符串 Console.WriteLine(Convert.ToString(d,2)); //...
使用强大的二进制模板技术来理解二进制数据。 编辑200多种格式。 查找并修复硬盘驱动器,内存键,闪存驱动器,CD-ROM等问题。 调查和修改进程中的内存。 数字取证、逆向工程和数据恢复。 二进制模板 - 十六进制编辑...
模拟十进制数到二进制数的转换过程,以LED来模拟各个二进制位,并能以动画方式模拟计数的过程。 选择手动方式时,将8个LED变成滑动条中数字的二进制(基数2)表示。例如,如果滑动条设置为数字10(在二进制中表示为...
二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具...
本文实例讲述了C#实现把图片转换成二进制以及把二进制转换成图片的方法。分享给大家供大家参考,具体如下: private void button1_Click(object sender, EventArgs e) { string path = this.textBox1.Text; byte...
主要介绍了JavaScript读二进制文件并用ajax传输二进制流的方法的相关资料,需要的朋友可以参考下
十进制转二进制的方法与二进制转十进制的方法及八进制十六进制
读取二进制文件读取二进制文件读取二进制文件读取二进制文件读取二进制文件读取二进制文件读取二进制文件
本Demo是基于VS2010的c++的实现文件转二进制,二进制转文件工程。代码中是通过png图片作为文件,同理可用于有其他类型的文件。
Binary Viewer二进制文件读取软件,可读取二进制的语音数据,图像数据,从而分析音频或者图像存储的二进制信息
浮点数转二进制,二进制转浮点数,E,PI转二进制小工具
解决labview字符串转换功能不足,将二进制字符串转变为十进制字符串。
易语言置入汇编实现二进制十进制互转源码,置入汇编实现二进制十进制互转,取二进制位,二进制到十进制
易语言字节集到二进制互转源码,字节集到二进制互转,字节集到二进制,二进制到字节集
二进制转换为十进制,十进制转换为二进制,控制台应用程序
适用于将二进制数转换为十进制,A为十进制,B为二进制。{A,B}每次左移一位,判断A的每四位是否>4,若大于四则+3,否则保持不变;B为多少位二进制数则左移多少次。最终A是B转换成十进制的数。代码为32位二进制数转换...
十进制转十六进制 十六进制转二进制的小程序