static final char[] digits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
public static String toBinaryString(int paramInt){
return toUnsignedString(paramInt, 1);
}
private static String toUnsignedString(int paramInt1, int paramInt2){
char[] arrayOfChar = new char[32];
int i = 32;
// 此处按二进制 1左移 1 位 为2
int j = 1 << paramInt2;
int k = j - 1;
do {
// paramInt1 & k k=1,偶数 & 1 = 0,奇数 & 1 = 1
arrayOfChar[(--i)] = digits[(paramInt1 & k)];
// >>>无符号右移操作符 无符号为正还是为负 都在高位插入0
paramInt1 >>>= paramInt2;
}while (paramInt1 != 0);
// public String(byte[] bytes,int offset, int length)
// bytes - 要解码为字符的 byte
// offset - 要解码的第一个 byte 的索引
// length - 要解码的 byte 数
// 从第offset的索引开始 解码长度为length
return new String(arrayOfChar, i, 32 - i);
}
toBinaryString(2);//调用下分析
2的二进制为0000 0000 0000 0000 0000 0000 0000 0010
arrayOfChar[31] = digits[2&1] = '0'
2 >>> 1 为 0000 0000 0000 0000 0000 0000 0000 0001
paramInt1 = 1
arrayOfChar[30] = digits[1&1] = '1'
1 >>> 1 为 0
循环终止
new String(arrayOfChar,30,2) 其实就是new String(new char[2])
char[0] = arrayOfChar[30]
char[1] = arrayOfChar[31]
返回String 10
分享到:
相关推荐
Java中的`Integer.toBinaryString(int)`方法可以将一个十进制整数转换成其二进制字符串表示。 3. **八进制和十六进制转换**: - 八进制用前缀`0`表示,十六进制用前缀`0x`或`0X`表示。Java提供了`Integer....
1. **解析二进制**:读取浮点数的符号位、指数和尾数。 2. **处理特殊值**:检查指数是否全0或全1,这可能表示零、无穷大或NaN(非数字)。 3. **处理指数**:对指数进行解偏移操作,得到实际指数值。 4. **恢复尾数...
本主题聚焦于一个特定的工具或源码,即“16进制单精度(32位)浮点型转换器”,它能够将32位的浮点数在16进制表示与十进制表示之间进行转换,并考虑到了不同的字节序——大端和小端。 首先,我们要理解16进制和...
例如,十进制的123转为二进制: ``` 123 = 1 * 2^5 + 2 * 2^2 + 3 * 2^0 = 1 * 32 + 2 * 4 + 3 * 1 = 64 + 8 + 3 = 75 (二进制) ``` - **从低进制到高进制**:不断除以目标进制的基数并记录余数,直到商为0。...
在Java中,前缀`0b`或`0B`用来标识一个二进制数,例如`0b1011`表示十进制中的11。 2. **八进制**:使用0到7这八个数字,基数为8。在Java中,前缀`0`用来标识一个八进制数,如`013`表示十进制中的11。 3. **十进制**...
源码实现十六进制转十进制的例子,这里以Python为例: ```python def hex_to_dec(hex_str): return int(hex_str, 16) hex_number = "1ABC" print(hex_to_dec(hex_number)) # 输出:4372 ``` 在这个例子中,`int...
例如,将十进制转换为二进制: ```java int decimalNum = 10; String binaryStr = Integer.toBinaryString(decimalNum); ``` 而将二进制字符串转换为十进制: ```java String binaryStr = "1010"; int ...
Java代码会通过读取网络或文件中的二进制数据,然后按照规约格式逐一解析每个域。例如,可能需要定义一个`Ice104Frame`类来存储整个帧的信息,并且有对应的子类如`Ice104TelemetryFrame`和`Ice104StatusFrame`来处理...
在Java编程语言中,BCD(Binary Coded Decimal,二进制编码的十进制)是一种特殊的数据编码方式,主要用于处理十进制数值。BCD编码将每个十进制数字映射为4位二进制表示,使得在计算机内部处理时能够更高效地进行十...
在实际编程中,理解并能够操作不同进制之间的转换对于解决许多问题至关重要,特别是在处理二进制、八进制、十进制和十六进制数据时。例如,在处理位运算、文件权限或内存地址时,理解这些转换可以帮助我们更好地理解...
在计算机科学中,进制转换是非常基础且重要的概念,常见的进制有二进制(Binary)、八进制(Octal)、十进制(Decimal)和十六进制(Hexadecimal)。这个工具类可能包含了将数字从一种进制转换到另一种进制的方法。 ...
`shift`决定了我们将使用哪种基数(base)进行转换,例如,当`shift`为2时,基数为4(因为2的2次方是4),表示二进制;当`shift`为3时,基数为8,表示八进制。`mask`则是根据`shift`计算出的用于与操作的值,以获取...
1. 二进制:由0和1两个数字组成,是计算机内部运算的基础,所有计算机指令和数据都是以二进制形式存储的。 2. 八进制:由0到7八个数字组成,是早期计算机系统中用于简化二进制表示的一种方式,每三位二进制可以对应...
4. **进制转换**:Java支持二进制、八进制、十进制和十六进制之间的转换。可以使用`Integer.parseInt()`或`Integer.toString()`方法,通过指定基数(base)来完成转换。例如,`Integer.parseInt("1010", 2)`将二进制...
例如,从二进制、八进制、十进制到十六进制的转换,以及在这些进制下进行数学运算。这需要理解各种进制表示法,并使用Java的`Integer.parseInt()`和`Integer.toString()`等方法进行转换。 除了上述技术,这个项目还...
例如,将二进制转换为十进制,可以使用"Integer.parseInt()"函数,该函数接受一个表示二进制的字符串,并将其解析为十进制整数。相反,将十进制转换为二进制,可以使用"Integer.toBinaryString()"方法,它会返回一个...
IPv4地址采用32位二进制数表示,通常写作四组十进制数的形式,每组之间用点分隔开。例如: 192.168.1.1。 ##### IpV6地址 IPv6地址使用128位二进制数表示,通常写作八组四位十六进制数的形式,每组之间用冒号分隔开...
### Java计算校验和源码知识点解析 #### 一、概述 本文将深入解析一个用于计算十六进制数据校验和的Java方法:`makeChecksum`。该方法主要用于确保数据在传输过程中的完整性和一致性,避免因网络传输等问题导致的...
1.3 读入和写出二进制数据 1.3.1 随机访问文件 1.4 ZIP文档 1.5 对象流与序列化 1.5.1 理解对象序列化的文件格式 1.5.2 修改缺省的序列化机制 1.5.3 序列化单例和类型安全的枚举 1.5.4 版本管理 1.5.5 为克隆使用...
例如,十进制数字3转换为二进制是11,刚好占用两个二进制位,而十六进制的A(10)转换为二进制是1010,占用四位。这种转换是编码的基础,例如ASCII码和Unicode(UTF系列)就是将字符映射到特定的二进制值。 在源码...