精华内容
下载资源
问答
  • 主要介绍了C语言十进制转二进制代码实例,并且转换后会统计二进制1的个数,实例简单明了,需要的朋友可以参考下
  • 主要介绍了C# 进制转换的实现(二进制、十六进制、十进制),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 为方便读者学习,本文小编给读者提供了用verilog将二进制码转换为十进制BCD码的程序设计方法,供读者参考。
  • C语言实现十进制转换成八十六进制的转换,代码已经经过调试可以使用,放心下载!
  • 摘 要: 针对二进制转十进制(BCD)转码的FPGA实现目标,提出了一种高效、易于重构的转码设计方案。并在FPGA开发板上成功地实现了该设计,验证结果表明,与使用中规模集成电路IP核(SN74185A)实现的7 bit、10 bit...
  • 常用的进制有二进制,八进制,十进制,十六进制。 二.将整数转换成十六进制 二.一 将int整数转换成十六进制(一) 先写一个主方法,接下来,所有的方法都是通过main 方法来调用的。 不用Junit测试。 做静态的方法,...

    一. 进制转换

    在生活和实际开发中,进制转换是一个常考的知识点。 虽然Java开发者已经对其进行了封装,但还是要学会自己编写相应的进制转换器的。 常用的进制有二进制,八进制,十进制,十六进制。

    二.将整数转换成十六进制

    二.一 将int整数转换成十六进制(一)

    先写一个主方法,接下来,所有的方法都是通过main 方法来调用的。 不用Junit测试。 做静态的方法,类似于工具的形式。

    public static void main(String []args){
    		System.out.println(printOX1(1024));
    }
    

    先用最简单的方法进行写程序。 求十六进制,就是将这个数字不断的除以16,然后得到余数。 去判断这个余数的大小,如果是0 ~ 9 ,那么就用数字0 ~ 9 来表示,如果是10 ~ 15 ,那么 就用字符’A’ ~ ‘F’ 或者小写的 ‘a’ ~ ‘f’ 来表示。 然后,用商来替换这个数字,继续进行循环。
    最简单的方式,先用一个字符串来接收转换后的进制结果。要循环八次。 为什么用8呢,因为int型是4个字节,十六进制最大用四个字符来表示。 所以,最大是4*8/4=8 个长度。

    public static String printOX1(int num){
    		//1. 判断,如果是0的话,就直接返回0
    		if(num==0){
    			return "0";
    		}
    		//2.16进制的话,存储int型,可以存储4*32/16=8 个长度。
    		StringBuilder sb=new StringBuilder();
    		for (int i = 0; i <8; i++) {
    			//3. 将这些数字除以16,得到余数。 求的是低四位。
    			int temp=num&15;
    			if(temp>9){
    				sb.append(temp-10+'A');
    			}else{
    				sb.append(temp);
    			}
    			num=num>>>4; //除以16,得到商。 将商当成除数。
    		}
    		return sb.toString();
    	}
    

    上面这个运行输出后,结果是:
    在这里插入图片描述
    这个顺序是颠倒的,并且还有多余的0存在。

    二.二 将int整数转换成十六进制(二)

    改进: 根据余数来求数字和字符,其实是可以转换成数组的。 利用数组的查表法进行相应的改变。 将余数放入到数组的下标索引上,就可以取出相应的表示字符。

    public static String printOX2(int num){
    		//1. 判断,如果是0的话,就直接返回0
    		if(num==0){
    			return "0";
    		}
    		// 定义一个字符数组,这个索引与十六进制的表示方式一样。
    		char [] hexs={'0','1','2','3','4','5','6','7','8','9',
    				'A','B','C','D','E','F'};
    		StringBuilder sb=new StringBuilder();
    		for (int i = 0; i <8; i++) {
    			int temp=num&15;
    			sb.append(hexs[temp]); // 根据下标去求数组中查询相应的值。
    			num=num>>>4;
    		}
    		return sb.toString();
    	}
    

    运行后,结果仍然是: 00400000, 顺序颠倒,有零。
    在这里插入图片描述

    二.三 将int整数转换成十六进制(三)

    利用数组的方式去解决。 将得到的这个值,倒序放入到一个数组中,就是将004 00000 倒序放入数组中。 那么 此时 a[0]=0,a[1]=0,… … a[4]=0, a[5]=4, a[6]=0,a[7]=0; 然后将这个数组从非零的索引位置处进行输出即可。 要记录下这个非零的索引位置。

    public static String printOX3(int num){
    		//1. 判断,如果是0的话,就直接返回0
    		if(num==0){
    			return "0";
    		}
    		//2.16进制的话,存储int型,可以存储4*32/16=8 个长度。
    		char [] hexs={'0','1','2','3','4','5','6','7','8','9',
    				'A','B','C','D','E','F'};
    		char [] tabs=new char[8];
    		StringBuilder sb=new StringBuilder();
    		int pos=tabs.length; 
    		while (num>0) {  //不知道要运行几次。
    			//3. 将这些数字除以16,得到那个要转换的值。
    			int temp=num&15;
    			tabs[--pos]=hexs[temp];  //上面用的是长度,这里用--pos. 要注意,索引越界的问题。
    			num=num>>>4;
    		}
    		for(int i=pos;i<8;i++){
    			sb.append(tabs[i]);
    		}
    		return sb.toString();
    	}
    

    运行之后,就是:
    在这里插入图片描述
    正确的十六进制数字。

    二.四 将int整数转换成十六进制(四)

    利用String 的format 格式化方法进行求解。 格式信息是 %x. x为十六进制。

        String.format("%x",1024);   // 是String 类型
    

    二.五 将int整数转换成十六进制(五)

    Java底层开发人员,封装了一个方法。 可以自动将数字进行转换成十六进制。
    开发中,推荐使用这一个。

    	Integer.toHexString(1024)    //转换成十六进制。 二进制,八进制,也有类似的方法。
    

    三. 十进制转其他的进制

    只支持常见的二进制,八进制,十六进制。 这种方式,暂时不支持其他的进制。后面有其他的方法会慢慢支持的。

    public static void main(String []args){
    	int num=1024;
    	System.out.println("十六进制:"+toHex(num)); //转换成十六进制
    	System.out.println("二进制:"+toBinary(num)); //转换成二进制
    	System.out.println("八进制:"+toOct(num)); //转换成八进制
    }
    

    其中,十六进制的方法是:

    public static String toHex(int num) {
    		return  toTrave(num,15,4); //基数是15,右移4位。
    	}
    

    虽然二进制和八进制,已经可以证明,肯定是数字型的。但由于位数相比较十进制较多,用int 或者long接收的话,都有可能造成溢出。 所以,不建议用long 或者int 接收 。 直接用字符串接收,是数字型的字符串。
    其中,八进制的方法是:

    public static String toOct(int num) {
    		return toTrave(num,7,3);
    	}
    

    其中,二进制的方法是:

    public static String toBinary(int num) {
    		return toTrave(num,1,1);
    	}
    

    共同的方法是 toTrave()的定义是:

    public static String toTrave(int num,int base,int moveIndex){
    		//1. 判断,如果是0的话,就直接返回0
    		if(num==0){
    			return "0";
    		}
    		//2.16进制的话,存储int型,可以存储4*32/16=8 个长度。
    		char [] hexs={'0','1','2','3','4','5','6','7','8','9',
    				'A','B','C','D','E','F'};
    		char [] tabs=new char[8];
    		StringBuilder sb=new StringBuilder();
    		int pos=tabs.length; 
    		while (num>0) {  //不知道要运行几次。
    			//3. 将这些数字除以基数,得到那个要转换的值。
    			int temp=num&base;
    			tabs[--pos]=hexs[temp];  //上面用的是长度,这里用--pos. 要注意,索引越界的问题。
    			num=num>>>moveIndex; 
    		}
    		for(int i=pos;i<8;i++){
    			sb.append(tabs[i]);
    		}
    		return sb.toString();
    	}
    

    与上面的printOX3() 方法是一样的。 只是将15,和>>>4 的4 转换成局部变量而已。

    四. String.format 方法的支持

    		System.out.println(String.format("%x",1024));//十六进制
    		System.out.println(String.format("%o",1024)); //八进制
    		System.out.println(String.format("%d",1024)); //十进制
    		System.out.println(String.format("%b",1024)); //%b,并不是二进制,而是会输出true. 非空为true
    

    五. Integer 的toString() 方法封装

    		System.out.println(Integer.toBinaryString(1024)); //二进制
    		System.out.println(Integer.toOctalString(1024)); //八进制
    		System.out.println(Integer.toHexString(1024)); //十六进制	
    

    如果要转换成其他进制的话,用toString(十进制数字num,要转换的进制位) 的方法。

    System.out.println(Integer.toString(1024,7));   //转换成七进制数
    System.out.println(Integer.toString(1024,2));  //当然,也可以用它转换成二进制数。
    

    五. Integer 的parseInt(“数字字符串”,“原先的进制”) 和valueOf(“数字字符串”,原先的进制) 方法封装

    这两个方法,都是转换成十进制的。

    System.out.println(Integer.parseInt("400",16)); //将16进制的400转换成十进制
    System.out.println(Integer.valueOf("400",8));//将8进制的400转换成十进制
    

    谢谢!!

    展开全文
  • 浮点数转二进制二进制转浮点数,E,PI转二进制小工具
  • 包含三个三个工具类,一个枚举,一个说明,可以实现常用的转换问题。时间可以根据自己需要转换,自定类型,转换方便。进制转换实现自定义任意进制转换
  • #include "iostream" using namespace std; #define MAX 50 int _10to2()//十转二 ... cout 请输入一个整型十进制数:"; int number; cin >> number; int elem2[MAX]; int i = 0; int length=0;
    #include "iostream"
    using namespace std;
    #define MAX 50
    int main()//十转二
    {
        cout << "请输入一个整型十进制数:"<<endl;
        int number;
        cin >> number;
        int elem2[MAX];
        int i = 0;
        int length=0;
        do
        {
            elem2[i] = number % 2;
            number = number / 2;
            i++;
            length++;
        } while (number!= 1);
        elem2[length] = number;
        length++;
        for (i = length-1; i>=0;i--)
        cout << elem2[i] << " ";
        cout << endl;
        return 0;
    }
    
    展开全文
  • js实现十进制实数向二进制转化

    千次阅读 2018-08-06 21:51:03
    假期在百度前端学院(一个非常优秀的免费学习平台)零基础学习前端,上面有整套的学习路线,可以边看边做,在做的过程中可以发现很多意想不到的问题,改正错误的同时也在积累经验,今天就被一道十进制二进制转化的...

    假期在百度前端学院(一个非常优秀的免费学习平台)零基础学习前端,上面有整套的学习路线,可以边看边做,在做的过程中可以发现很多意想不到的问题,改正错误的同时也在积累经验,今天就被一道十进制向二进制转化的题蒙住了,由此发现,JavaScript虽然是一种解释型语言,也是有很多语法规范和限制的。

    不再多说话,先把代码贴出来。

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>IFE ECMAScript</title>
        <script>
            function greetings() {
                var time = new Date();
                var timeNow = time.getHours();    //得到当前时间
                if(timeNow<12)
                    alert("Good morning!");
                else{
                    if(timeNow<18)
                        alert("Good Afternoon!");
                    else
                        alert("Good evening!");
                }
            }
        </script>
    </head>
    <body onload='greetings()'>
    <input id="dec-number" type="number" placeholder="输入一个十进制非负实数"><br/>
    <input id="bin-bit" type="number" placeholder="输入转化后二进制数字位数"><br/>
    <button id="trans-btn">转化为二进制</button>
    <p id="result">运算结果</p>
    <script>
        //十进制转换成二进制
        function dec2bin(decNumber) {
            // 在这里实现你的转化方法,注意需要判断输入必须为一个非负实数
    
            var numberString;
            var numberArray = [];
            /*传入的参数是一个实数,因为实数的整数部分和小数部分转化为二进制的方法不太一样,
            因此要分开处理,先把此实数转化为字符串,用小数点进行分隔*/
            var newNumber = decNumber.toString().split(".");
            var integer = Number(newNumber[0]);                     //整数部分
            var decimals = Number('0.' + newNumber[1]);             //小数部分
            var binBit = document.getElementById("bin-bit").value;
            if(decNumber<0)
            {
                alert("输入的数字小于零,不符合要求,请重新输入");
                document.getElementById("dec-number").focus();
            }
            else {
                while (integer >0) {
                    var number1 = integer % 2;
                    numberArray.unshift(number1);
                    integer = Math.floor(integer/2);
                }
                if (decimals !== 0)
                    numberArray.push(".");
                while (decimals !== 0) {
                    var dNumber = decimals * 2;
                    var number2 = dNumber.toString().split(".")[0];   //方法1:
                    /*因为小数部分肯定介于0~2之间,且小于2,
                     所以可使用Math.floor()向下取整,得到0或者1.*/
                    // var number2 = Math.floor(dNumber);             //方法2,
                    numberArray.push(number2);
                    decimals = dNumber - number2;
                }
            }
    
            /*sLength的位置很重要,因为numberArray的长度在此前是变化的,若在函数开始时
            获取,则因为它初始化为[]而产生错误*/
            var sLength = numberArray.length;
            if(binBit>sLength) {
                for (var i = 0; i < (binBit-sLength); i++)
                {
                    numberArray.unshift('0');
                }
            }
            else {
                alert("The dec-number is larger than bin-bit");
            }
                numberString =  numberArray.join("");
                document.getElementById("result").innerHTML = numberString;
        }
    
        // 实现党点击转化按钮时,将输入的十进制数字转化为二进制,并显示在result的p标签内
        // Some coding
        function getValue(){
            var value1 = document.querySelector('input').value;
            dec2bin(value1);
        }
        var btn = document.getElementById("trans-btn");
        btn.addEventListener('click',getValue);     //添加时间监听器,点击按钮时触发事件
    </script>
    </body>
    </html>

    该注意的事项大都已经注释在代码里面了,作为学习的总结吧。

    展开全文
  • 1. 十进制整数转二进制 假设有十进制整数 2748,如何转换它的二进制呢,将2748除尽2得到商和余数(倒序),即1010 10111100 现在是12位,因为一个字节是8位,所以必须以 8 的整数倍存储,需要补齐到16位 就是 ...

    内容:

    大致解释了进制转换原理,详情请见本文最后的参考链接。

     

    基本概念:

    B = 8 b , B 为字节,b为比特,b就是常说的“位”,

    例如二进制 00100011 00001111 就是16b = 2B,就是常说的两个字节

     

    转换:

    1. 十进制整数转二进制

    假设有十进制整数 2748,如何转换它的二进制呢,将2748除尽2得到商和余数(倒序),即1010 10111100

    现在是12位,因为一个字节是8位,所以必须以 8 的整数倍存储,需要补齐到16位 就是 00001010 10111100,

    但是因为二进制太长,通常查看二进制文件的时候都是16进制查看器,如果以16进制编辑器查看结果是什么呢,

    因为2的4次方=16,所以二进制的4位可以用16进制的一位表示,以字节为单位,每个字节内部4位转一位16进制,如下所示:

    0000 1010    1011 1100

      0       A          B      C

    也就是说00001010 10111100 用 16进制编辑器查看就是 0ABC,

    如果存在高低位,规则就是以字节为单位,字节间倒序,字节内顺序,

    那      0A BC             就是  BC 0A

    那      1A 2B 3C 4D   就是  4D 3C 2B 1A

     

    参考链接:

    https://blog.csdn.net/linjx2004/article/details/6532980

    https://blog.csdn.net/gjw198276/article/details/6956244

     

     

        

    展开全文
  • 利用数组和调用函数编写一个十进制转换成二进制的程序 #include "stdio.h" int main(){ int i = 0, n , a[32]; printf("请输入一个十进制正整数:\n"); scanf("%d",&n); for ( ; n>0 ; n /= 2) { a[i++] ...
  • 个人原创软件,MFC界面,可以任意转换64bit数据到2进制、10进制、16进制,2进制可以直接查看任意bit,取0~63之间的任意区间值,并且支持取位、移位大小端转换、加、减、乘、除、取余、与、或、非等计算,支持GB2312Z...
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 ... 二进制转化十进制:(1)从右向左数,确定所数的数字是第几位(编号为n),...
  • 二进制转十进制C++

    2021-01-17 12:19:46
    } cout 新的改变 我们对Markdown编辑进行了一些功能拓展与语法支持,除了标准的Markdown编辑功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你...
  • 十进制数转换为二进制数 C++前言一、十进制转换为二进制的数学算法二、代码实现1.设计转换函数transfer2.完整代码总结 前言 这篇文章和大家分享一下我个人对十进制数转换为二进制数的想法,目前暂时更新只整数...
  • vhdl二进制转十进制BCD码加法

    热门讨论 2011-06-08 19:21:49
    实现8421BCD码加法和二进制十进制之间的相互转换功能 完成将6位二进制数值转换成2位BCD形式十进制数的功能 完成2位BCD码加法运算
  • 十进制的小数到二进制的转换 十进制的小数转换为二进制,主要是小数部分乘以2,取整数部分依次从左往右放在小数点后,直至小数点后为0。例如十进制的0.125,要转换为二进制的小数。 0.125 十进制——>二进制 转换...
  • 解决此类问题的方法可能不止以下这两类方式(十进制转化为其它进制也是同样的道理,在此仅以转化为二进制为例),在此只对两类方式的一种解法加以解释,其余方式暂不再此次讨论范围内。 方式一:递归 递归算法优势...
  • 个八位十六进制数字,装换为二进制,然后取其补码,然后求其平均值。用c编写,代码稍微有点问题,大家可以完善下
  • 文章目录一、代码、运行结果 一、代码 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <string> #include <...
  • c++二进制转十进制

    2021-09-26 11:48:44
    代码 #include <iostream> #include <cstring> #include <cmath> using namespace std; double power(double x, int n)...//二进制64位 char c[64]; while (cin >> c){ if(c[0] == ...
  • //将一个八位的二进制数转换为十进制 #include<iostream> #include<cstdio> using namespace std; int convert(char *a){ int sum=0; int q=1; for(int i=7;i>=0;i--){ if(a[i]=='1'){ sum+=q; ...
  • 小数的二进制十进制转换

    千次阅读 2019-08-26 00:05:39
    十进制的小数转换为二进制,主要是小数部分乘以2,取整数部分依次从左往右放在小数点后,直至小数点后为0。例如十进制的0.125,要转换为二进制的小数。 0.125*2=0.25 取整数部分0 0.25*2=0.5 取整数部分0 0.5*2=1...
  • 这里写自定义目录标题欢迎使用Markdown编辑新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...
  • 这里写自定义目录标题欢迎使用Markdown编辑新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...
  • 1、二进制转为十进制 分享给有需要的人,代码质量勿喷。 private void TbtnDenary_Click(object sender, EventArgs e) { if (this.TtxtBinary.Text == "") { MessageBox.Show("输入二进制!!!"); return;...
  • 这里写自定义目录标题如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建...# 二进制十进制转换 number_10 = int(input('请输入一个十进制数字:')) number_100 =...
  • 本题要求实现一个函数,将正整数n转换为二进制后输出。 函数接口定义: void dectobin( int n ); 函数dectobin应在一行中打印出二进制的n。建议用递归实现。 裁判测试程序样例: #include <stdio.h> void ...
  • 十进制二进制相互转换(包括带小数点.各类进制转换公式)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,819
精华内容 14,727
关键字:

十进制转二进制转化器