package org.noneorone.lang.number;
/**
* Title: JavaTech<br>
* Description: 进制转换小例<br>
* Copyright: Copyright (c) 2012 <br>
* Create DateTime: Apr 11, 2012 2:51:22 PM <br>
* @author sunnysolong
*/
public class BinaryConversion {
/**
* 十进制转二进制处理
* @param decimal
* @return
*/
private static StringBuilder decimalToBinary(int decimal){
StringBuilder sb = new StringBuilder();
decimalToBinary(decimal, sb);
sb = sb.reverse();
if(sb.indexOf("0") == 0){
sb.deleteCharAt(0);
}
return sb;
}
/**
* 十进制转二进制
* @param decimal
* @param sb
* @return
*/
private static StringBuilder decimalToBinary(int decimal, StringBuilder sb){
//商和余数
int quotient = 0, remainder = 0;
remainder = decimal - decimal / 2 * 2;
quotient = (decimal - remainder) / 2;
//System.out.println(decimal + " / 2 = " + quotient + " ... " + remainder);
if(quotient > 1){
sb.append(remainder);
decimalToBinary(quotient, sb);
}else{
sb.append(remainder);
sb.append(quotient);
}
return sb;
}
public static void main(String[] args) {
System.out.println(decimalToBinary(23) + "---" + decimalToBinary(61) + "---" + decimalToBinary(42));;
System.out.println( 61|23); // 10111 | 111101 对整型参数逐位执行布尔OR操作,如果其中一个运算数中相应的位数为1或者两者都为1,则结果中的这一位为1
System.out.println( 61&23); // 10111 & 111101 对整型参数逐位执行布尔AND操作,只有两个运算数中相应的位数都为1,结果中的这一位方可为1
System.out.println( 61^23); // 10111 ^ 111101 对整型参数逐位执行布尔异或操作,异或是指第一个运算数是true,或者第二个运算数是true,但是两者不能同时为true.如果两个运算数中只有一个数的相应位为1(但不能同时为1),那么结果中的这一位就为1。
//总结:a | b = a & b + a ^ b;
}
}
分享到:
相关推荐
2. **十进制转二进制**: 通常,我们可以使用“除2取余”法来实现这个转换。将十进制数不断除以2,每次得到的余数就是二进制数的相应位。从下往上排列这些余数,就得到了该十进制数的二进制表示。 3. **负数的二...
对于二进制转十六进制,每四位二进制数组成一位十六进制。 2. **其他进制转二进制**:可以逐位转换,将每个数字转换成相应的二进制表示。例如,八进制的5转为二进制是0101,十六进制的C转为二进制是1100。 3. **八...
例如,二进制到十进制可以使用位移和加法,十进制到二进制则可以使用除以2和模运算。这些方法对于理解底层机制非常有帮助,但通常在实际编程中,直接使用内置的转换函数更为简便和高效。 总之,理解和掌握二进制与...
本文将深入解析Delphi中关于十进制、二进制、十六进制以及字符串之间的转换方法,旨在为程序员提供实用且精炼的代码示例。 ### 十进制转其他进制 #### 十进制转二进制 在Delphi中,将一个整数转换成二进制字符串...
在提供的文件"十进制转二进制十六进制2"中,可能包含了实现这些转换的代码示例。通过阅读和理解这个代码,你可以看到如何将上述算法具体应用到C#编程实践中。这个自定义算法有助于加深对数字系统和编程基础的理解,...
例如,当需要从二进制字符串转换为十进制时,可以先将字符串的每一位转换为整数,然后通过汇编实现快速的位运算和累加。在易语言中,这可能涉及到以下步骤: 1. 遍历二进制字符串,每次取出一位(0或1)。 2. 将这...
了解如何将十进制数转换为二进制数是理解和操作计算机底层逻辑的关键。 十进制数是由0到9这十个数字组成,每一位的权重是10的幂次。例如,数123在十进制中表示为1×10² + 2×10¹ + 3×10⁰。相反,二进制数只使用...
在C语言中,可以使用位运算符(如右移运算符>>>和左移运算符)或除法和模运算配合循环来实现十进制转二进制。 1. 位运算方法: - 将十进制数除以2,取余数,然后将商继续除以2,直到商为0。 - 保存每次得到的余数...
可以使用`std::stoul`函数将十六进制字符串转换为无符号长整型,然后通过位运算或循环遍历来生成二进制字符串。下面是一个实现的例子: ```cpp #include #include #include std::string hexToBin(std::string ...
最后,文档"二进制数和十进制数相互转换.doc"可能包含了课程设计的具体要求、步骤指南、示例代码以及评估标准。仔细阅读并遵循这些指示,确保你的解决方案满足所有要求,并能有效解释其工作原理。 总之,汇编语言中...
- 使用乘法和加法运算,将每一位十进制数转换为二进制形式,并累加到`AX`寄存器中。 - 将最终的二进制结果存储回`BUF`,覆盖原来的ASCII码。 - 显示提示信息和转换后的二进制数。 - 通过子程序`SHOW`逐位显示二...
在给定的代码示例中,`B2D` 函数用于将二进制字符串转换为相应的十进制整数。 ##### 代码解析 ```vb Public Function B2D(ByVal bstr As String) As Long Dim n As Integer Dim s As Long Dim i As Integer ...
### Java程序实现十进制转二进制、八进制、十六进制 #### 程序概述 此Java程序的主要功能是接受用户输入的一个十进制数字,并将其转换为二进制、八进制以及十六进制表示。程序使用了Swing组件库来构建用户界面,并...
### C语言顺序栈实现十进制到二进制、八进制、十六进制的转换 #### 一、概述 本篇文章将详细介绍如何使用C语言中的顺序栈来实现十进制数字向二进制、八进制以及十六进制的转换。通过分析给出的代码示例,我们将...
在 MATLAB 中,处理图像数据时,有时需要将像素值从十进制转换为二进制形式,以便进行进一步的分析或操作。`dec2bin` 函数是 MATLAB 提供的一个非常方便的工具,用于实现这一转换。这个函数接受一个十进制数作为输入...
在本主题中,我们将深入探讨如何使用位运算将十进制数转换为二进制数。位运算主要包括与(&)、或(|)、非(~)、异或(^)以及左移()和右移(>>)等操作。 首先,我们要理解十进制和二进制之间的关系。十进制是...
在Java编程语言中,将十进制数转换为二进制或其他任意进制是一项常见的任务。这主要涉及到数字系统的基础理论以及Java中的字符串处理和数学运算。以下将详细讲解如何实现这一功能。 首先,让我们从最基础的二进制...
3. **二进制转十进制**:计算每一位的权重和,即2的相应幂次乘以位上的数字。 4. **二进制转十六进制**:每四位二进制转换为一位十六进制。 5. **十六进制转十进制**:将十六进制数的每个符号转换为对应的十进制值,...
- **二进制转十进制**:可以使用按权展开法,将每一位乘以2的相应幂次再求和。 - **十进制转二进制**:通常使用除2取余法,重复将十进制数除以2,取余数,然后将余数倒序排列。 - **十进制转十六进制**:同样可以...
本压缩包文件"易语言源码易语言六十二进制与十进制互转源码.rar"提供了一段易语言编写的源代码,用于实现六十二进制与十进制之间的转换。了解这个知识点对于学习易语言以及进制转换是非常有帮助的。 首先,我们要...