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;
分享到:
相关推荐
**BES二进制文件编辑器详解** 在IT领域中,有时我们需要对计算机中的文件进行底层操作,这就涉及到了二进制文件的编辑与查看。本文将深入介绍名为"BES二进制文件编辑器"的专业工具,它为用户提供了一种高效、直观的...
"十进制转二进制的方法" 本文将详细介绍十进制转二进制的方法,并对二进制转十进制、八进制、十六进制的转换方法进行比较和分析。 一、十进制转二进制 十进制转二进制的算法是许多初学者头疼的问题,但实际上这是...
二进制部署k8s高可用集群(二进制-V1.20) 基于提供的文件信息,本文将对二进制部署k8s高可用集群进行详细的知识点总结。 1. 生产环境部署 K8s 集群的两种方式 在生产环境中,部署 K8s 集群有两种方式:一种是...
在LabVIEW编程环境中,二进制字符串转换为十进制数值是常见的操作,尤其是在处理数据或进行计算时。本文将详细讲解如何利用LabVIEW实现这一转换,并探讨相关知识点。 首先,我们要理解二进制和十进制之间的基本概念...
在计算机科学和编程领域,16进制(Hexadecimal)和二进制(Binary)是两种重要的数值表示方式。16进制是一种基于16的数制系统,它使用0到9的数字以及A到F(代表10到15)来表示数值,而二进制则基于2的数制系统,只...
在IT领域,图片二进制转换是一个常见的操作,特别是在嵌入式系统和单片机编程中。这个过程涉及到将图像数据转化为二进制格式,以便这些数据能够在资源有限的硬件设备上有效地处理和显示。标题"图片二进制转换器"指的...
描述中的“浮点数转二进制,二进制转浮点数”是指该工具支持两种主要功能:一是将十进制的浮点数转换为二进制表示,二是将二进制串转换回浮点数。浮点数的二进制表示遵循IEEE 754标准,这是一个国际标准,定义了...
总之,BMP转二进制工具是将图像数据转换为原始二进制格式的实用工具,它涉及图像文件结构的理解、数据解析和转换,以及二进制文件的生成。`WinHex_16.3_SR2`等专业工具使得这个过程变得更加便捷和高效。在处理这类...
二进制文件分析工具在IT领域中扮演着重要的角色,特别是在软件开发、逆向工程、安全分析和系统调试中。标题中的"二进制文件分析工具(用于分析二进制的exe文件)"揭示了我们讨论的重点是针对可执行(exe)文件的分析...
在IT领域,尤其是在系统开发、数据分析或软件调试中,经常需要查看和操作二进制文件。二进制文件不同于常见的文本文件,它们包含的是机器可读的0和1数据流,而非人类易读的字符。因此,需要专门的工具来查看和分析这...
"besnew二进制查看工具"是一款专门设计用于查看和分析二进制数据的专业软件。在IT领域,理解和处理二进制数据是至关重要的,因为计算机底层的数据存储和传输都是以二进制形式进行的。这款工具不仅支持二进制格式,还...
对于每个字节,使用内置的二进制转换函数(如`转换二进制字节`)将其转换为二进制字符串,然后连接这些字符串形成最终的二进制数据。 2. **二进制转字节集**:首先,将二进制字符串分割成单个的二进制位,然后将...
本文实例讲述了C#实现把图片转换成二进制以及把二进制转换成图片的方法。分享给大家供大家参考,具体如下: private void button1_Click(object sender, EventArgs e) { string path = this.textBox1.Text; byte...
标题中的“提取文件的二进制码软件”指的是一个能够读取并导出任何文件内容为二进制代码的工具。这种工具对于程序员、数据分析师或者安全研究人员来说非常有用,因为二进制码是计算机存储和处理数据的基本形式。下面...
二进制运算及转换PPT课件 二进制运算及转换是计算机技术中非常重要的一部分。了解二进制运算及转换的原理和方法,对于计算机技术的应用和发展具有重要的意义。 在日常生活中,人们广泛使用的是十进制数,但是...
在电子工程和嵌入式系统开发领域,HEX文件和二进制文件是常见的程序存储格式。它们分别代表了十六进制表示的ASCII文本和直接可烧录到硬件的二进制数据。HEX文件通常由编译器或集成开发环境(如Keil)生成,其中包含...
**二进制文件读取与Binary Viewer** 在计算机科学领域,二进制文件是指由机器可以直接理解和执行的数据格式,它们不包含任何人类可读的文本信息。这些文件通常包括音频、视频、图像、程序和系统文件等。由于二进制...
使用强大的二进制模板技术来理解二进制数据。 编辑200多种格式。 查找并修复硬盘驱动器,内存键,闪存驱动器,CD-ROM等问题。 调查和修改进程中的内存。 数字取证、逆向工程和数据恢复。 二进制模板 - 十六进制编辑...
二进制(Binary)和十进制(Decimal)是最基础的两种数字系统,它们在计算机科学中扮演着核心角色。本文将深入探讨如何在C#中进行二进制与十进制之间的转换,并通过一个简单的控制台应用程序实例来演示这一过程。 ...
二进制查看工具是计算机领域中用于分析和检查二进制数据的重要软件。在编程、系统调试、数据恢复以及安全分析等场景下,这类工具扮演着至关重要的角色。标题中的"二进制查看工具"指的是能够显示文件内容的十六进制...