`

10进制转换为二进制

阅读更多
public class Tools extends TestCase
{
    /** 10进制转16进制 */
    public static String algorismToHex(String source)
    {
        String binary = algorismToBinary(source);
        int len = binary.length();
        StringBuilder builder = new StringBuilder();
        for (int i = len; i >= 4; i = i - 4)
        {
            builder.append(change(binary.substring(i - 4, i)));
        }
        if (len % 4 != 0)
        {
            builder.append(change(binary.substring(0, len % 4)));
        }
        return builder.append("x0").reverse().toString();
    }
    
    public static void main(String[] args)
    {
        System.out.println(algorismToHex("100"));
        System.out.println(algorismToHex("29063"));
        System.out.println(algorismToHex("29064"));
        System.out.println(algorismToHex("29092"));
    }
    
    public static String change(String s)
    {
        String str = binaryToAlgorism(s);
        if ("10".equals(str))
        {
            return "a";
        }
        else if ("11".equals(str))
        {
            return "b";
        }
        else if ("12".equals(str))
        {
            return "c";
        }
        else if ("13".equals(str))
        {
            return "d";
        }
        else if ("14".equals(str))
        {
            return "e";
        }
        else if ("15".equals(str))
        {
            return "f";
        }
        else
        {
            return str;
        }
    }
    
    /** 十进制转二进制 */
    public static String algorismToBinary(String source)
    {
        Integer in = Integer.valueOf(source);
        StringBuilder builder = new StringBuilder();
        while (in != 0)
        {
            builder.append(in % 2 == 0 ? "0" : "1");
            in = in / 2;
        }
        return builder.reverse().toString();
    }
    
    /** 二进制转十进制 */
    public static String binaryToAlgorism(String binary)
    {
        int count = 0;
        int length = binary.length();
        for (int i = length - 1; i >= 0; i--)
        {
            int num = Integer.valueOf(new String(new char[] {binary.charAt(i)}));
            if (num == 1)
                count += show(length - i - 1);
        }
        return String.valueOf(count);
    }
    
    public void testAlgorismToBinary()
    {
        String str = "7817";
        
        Integer in = Integer.valueOf(str);
        StringBuilder builder = new StringBuilder();
        while (in != 0)
        {
            builder.append(in % 2 == 0 ? "0" : "1");
            in = in / 2;
        }
        String s = builder.reverse().toString();
        int count = 0;
        int length = s.length();
        for (int i = length - 1; i >= 0; i--)
        {
            int num = Integer.valueOf(new String(new char[] {s.charAt(i)}));
            if (num == 1)
                count += show(length - i - 1);
        }
        System.out.println(count);
        assertEquals(str, String.valueOf(count));
    }
    
    public static int show(int i)
    {
        int count = 1;
        for (int k = 0; k < i; k++)
        {
            count = count * 2;
        }
        return count;
    }
}
分享到:
评论

相关推荐

    汇编语言进制(二进制,八进制,十进制,十六进制)转换

    3. **八进制转其他进制**:类似二进制转换,但首先需要将八进制转换为二进制,然后再转为目标进制。 4. **十进制转其他进制**:使用长除法,每次除以目标基数,记录商和余数,余数是转换后的数字的低位,商继续除法...

    Labview 16进制转换为二进制

    适用于在通讯时可以用到的实例,16进制转换为二进制,已经测试OK.

    任意进制转换为10进制,10进制转换成任意进制

    3. 实际操作:以二进制数1101为例,转换为10进制就是1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 8 + 4 + 0 + 1 = 13。 二、10进制转换为任意进制 1. 分治策略:10进制转换到其他进制通常采用“除基取余”法,即将10进制数...

    进制数转换二进制八进制十进制十六进制之间转换方法PPT学习教案.pptx

    * 八进制转换为十六进制:先将八进制数转换为二进制数,再将二进制数转换为十六进制数。 * 十六进制转换为八进制:先将十六进制数转换为二进制数,再将二进制数转换为八进制数。 五、总结复习 进制数之间的转换是...

    labview 十进制转换为二进制

    labview 十进制转换为二进制,比较简单的一种方法,还可以用在其他方面

    循环十进制转换为二进制c++代码

    循环的十进制转换为二进制,方便读者学习参考。

    二进制转换为十进制(Verilog代码)

    二进制系统(Base-2)使用两个符号,0 和 1,来表示数值,而十进制系统(Base-10)使用十个符号,0 到 9。在计算机科学中,尤其是硬件描述语言(如 Verilog)中,理解和实现这种转换至关重要。本段落将详细解释如何...

    SQL语句实现进制转换

    至于八进制到十六进制,我们需要先将八进制转换为十进制,然后将十进制转换为十六进制。在转换为十进制之后,我们可以使用`HEX`函数(在某些系统中可能为`CONVERT(VARBINARY, ..., 16)`)将数字转换为十六进制。例如...

    十进制转换为二进制,并且以逗号隔开

    将十进制转换为二进制通常采用的方法是“除二取余法”。这个过程包括以下步骤: 1. 将十进制数除以2,得到商和余数。 2. 将商作为新的十进制数,重复第一步,直到商为0。 3. 从最后一次除法的余数开始,逆序排列所有...

    HEX TO BIN 十六进制转换为二进制 vb6.0实现

    标题"HEX TO BIN 十六进制转换为二进制 vb6.0实现"指出了这个项目的核心功能,即利用VB6.0编写一个程序,能够将输入的十六进制数值转换成等价的二进制形式。这在与硬件设备交互或解析特定格式的文件时非常有用,因为...

    C语言用栈实现十进制转换为二进制的方法示例

    本文实例讲述了C语言用栈实现十进制转换为二进制的方法。分享给大家供大家参考,具体如下: #include #include #include&lt;math.h&gt; #include #include process.h #define SIZE 100 #define STACKINCREMENT 10 #...

    C#16进制转换10进制

    本文主要讲解如何在C#中实现16进制转换为10进制,以及相关的位运算知识。 首先,让我们来看看C#如何进行16进制到10进制的转换。C#提供了`Convert.ToInt32`方法,它接受一个字符串形式的数值和一个表示原数值基数的...

    进制间的转换二进制与十进制转换流程图解

    例如,将十进制数156转换为二进制: - 首先用2去除156,得到商78余0。 - 然后用2去除78,得到商39余0。 - 接着用2去除39,得到商19余1。 - 再用2去除19,得到商9余1。 - 继续这个过程,直至商为0,得到的余数...

    报文传输中的进制转换(十六进制、二进制)

    而将十进制转换为十六进制,则可以先转换为二进制,再分组,每四位转换为一个十六进制数字。 这个C++项目可能就是一个实用工具,用户输入一个十进制数,程序会输出其对应的二进制表示,有助于理解和学习进制转换的...

    C#实现把图片转换成二进制以及把二进制转换成图片的方法示例

    本文实例讲述了C#实现把图片转换成二进制以及把二进制转换成图片的方法。分享给大家供大家参考,具体如下: private void button1_Click(object sender, EventArgs e) { string path = this.textBox1.Text; byte...

    超强进制转换工具 二进制 八进制 十进制 十六进制转换

    例如,从十进制转换为二进制,可以采用“除基取余”法,不断将数值除以2并记录余数,直到商为0,然后将余数倒序排列即可得到二进制数。 在日常工作中,进制转换工具可以帮助我们快速、准确地进行这些计算,避免手动...

    STM32数据进制转换程序,移植方便

    例如,他们可能需要将接收到的串口数据转换为10进制,或者将存储在EEPROM中的配置参数从十六进制转换为二进制以便处理。 总结来说,这个STM32数据进制转换程序是嵌入式开发中的实用工具,通过其高效的算法和良好的...

    C语言-顺序栈实现十进制转换为二进制-八进制-十六进制

    打印函数遍历栈中所有元素,将十进制数字转换为相应的字符表示,并按逆序输出,得到最终的进制转换结果。 ##### 8. 主函数逻辑 ```c int main() { //... scanf("%d", &m); //... while (m) { c = m % n; m ...

    java进制转换工具类

    二进制数组转换为二进制字符串 将二进制数组转换为十六进制字符串 将十六进制转换为二进制字节数组 将十六进制转换为二进制字符串

    西门子TIA博途进制转换功能.pdf

    通常在计算机系统中,数值可以表示为十进制、十六进制、二进制等形式。在TIA博途中,进制转换功能能够帮助工程师将程序中使用的数值以不同的进制形式表示出来,这对于程序的编写和调试都是非常有帮助的。 例如,在...

Global site tag (gtag.js) - Google Analytics