精华内容
下载资源
问答
  • 为什么要单独写个方法去做不同进制之间的转换呢?因为自带的方法在进行十六进制转为二进制的时候,精度在13位字符后就会出现丢失,为了让精度不丢失就自己根据16进制转换2进制的原理写了两个... 十六进制转换二进制...

           为什么要单独写个方法去做不同进制之间的转换呢?因为自带的方法在进行十六进制转为二进制的时候,精度在13位字符后就会出现丢失,为了让精度不丢失就自己根据16进制转换2进制的原理写了两个方法

        如果长度没有超过13位,可以用parseInt("125adf8",16).toString(2)='1001001011010110111111000',

       十六进制转换二进制  (本次转换的方法没有考虑带小数点的情况)

    function hex_to_bin(str) {
                let hex_array = [{key:0,val:"0000"},{key:1,val:"0001"},{key:2,val:"0010"},{key:3,val:"0011"},{key:4,val:"0100"},{key:5,val:"0101"},{key:6,val:"0110"},{key:7,val:"0111"},
                    {key:8,val:"1000"},{key:9,val:"1001"},{key:'a',val:"1010"},{key:'b',val:"1011"},{key:'c',val:"1100"},{key:'d',val:"1101"},{key:'e',val:"1110"},{key:'f',val:"1111"}]
    
                let value=""
                for(let i=0;i<str.length;i++){
                    for(let j=0;j<hex_array.length;j++){
                        if(str.charAt(i).toLowerCase()== hex_array[j].key){
                            value = value.concat(hex_array[j].val)
                            break
                        }
                    }
                }
                console.log(value)
                return value
            }

    二进制转十六进制    (本次转换的方法没有考虑带小数点的情况)

    function bin_to_hex(str) {
                let hex_array = [{key:0,val:"0000"},{key:1,val:"0001"},{key:2,val:"0010"},{key:3,val:"0011"},{key:4,val:"0100"},{key:5,val:"0101"},{key:6,val:"0110"},{key:7,val:"0111"},
                    {key:8,val:"1000"},{key:9,val:"1001"},{key:'a',val:"1010"},{key:'b',val:"1011"},{key:'c',val:"1100"},{key:'d',val:"1101"},{key:'e',val:"1110"},{key:'f',val:"1111"}]
                let value = ''
                let list=[]
                console.log(str)
                if(str.length%4!==0){
                    let a = "0000"
                    let b=a.substring(0,4-str.length%4)
                    str = b.concat(str)
                }
                console.log(str)
                while (str.length > 4) {
                    list.push(str.substring(0, 4))
                    str = str.substring(4);
                }
                list.push(str)
                console.log(list)
                for(let i=0;i<list.length;i++){
                    for(let j=0;j<hex_array.length;j++){
                        if(list[i]==hex_array[j].val){
                            value = value.concat(hex_array[j].key)
                            break
                        }
                    }
                }
                console.log(value)
                return value
            }

    异或运算 (需要上面两个方法做基础)

    function xor(a ,b){
                let A = hex_to_bin(a)
                let B = hex_to_bin(b)
                console.log(a+"   a的二进制:"+A)
                console.log(b+"   b的二进制:"+B)
                let o = "00000000000000000000000000000000000"
                if(A.toString().length > B.toString().length){
                    let c = A.toString().length - B.toString().length
                    B = o.substr(0,c).concat(B)
                }else if(A.toString().length < B.toString().length){
                    let c = B.toString().length - A.toString().length
                    A = o.substr(0,c).concat(A)
                }
                console.log('B:'+B)
                console.log('A:'+A)
                let d = ""
                for(let i=0;i<A.toString().length;i++){
                    if(A.toString()[i]==B.toString()[i]){
                        let q="0"
                        d = d.concat(q)
                    }else{
                        let p="1"
                        d = d.concat(p)
                    }
                }
                console.log(bin_to_hex(d))
                return bin_to_hex(d)
            }

    版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/lixiwoaini/article/details/82179094

    展开全文
  • 十进制整数转换二进制采用“除2倒取余”,十进制小数转换二进制小数采用“乘2取整”。 例题: 135D = __ B 解析:如下图所示,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取。得到结果:1000 ...

    1.十进制转R进制

    1.1 十进制转二进制

    十进制整数转二进制

    十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。

    例题: 135D = ______ B

    **解析:**如下图所示,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取。得到结果:1000 0111B.
    这里写图片描述

    图1.十进制整数转二进制

    十进制小数转二进制

    十进制小数转换成二进制小数采用 “乘2取整,顺序排列” 法。

    具体做法是:

    用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。

    然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

    例题: 0.68D = ______ B(精确到小数点后5位)

    **解析:**如下图所示,0.68乘以2,取整,然后再将小数乘以2,取整,直到达到题目要求精度。得到结果:0.10101B.

    在这里插入图片描述

    图2.十进制小数转二进制

    1.2 十进制转八进制

    思路和十进制转二进制一样,参考如下例题:

    例题: 10.68D = ______ Q(精确到小数点后3位)

    **解析:**如下图所示,整数部分除以8取余数,直到无法整除。小数部分0.68乘以8,取整,然后再将小数乘以8,取整,直到达到题目要求精度。得到结果:12.534Q.

    这里写图片描述

    图3.十进制转八进制

    1.3 十进制转十六进制

    思路和十进制转二进制一样,参考如下例题:

    例题: 25.68D = ______ H(精确到小数点后3位)

    **解析:**如下图所示,整数部分除以16取余数,直到无法整除。小数部分0.68乘以16,取整,然后再将小数乘以16,取整,直到达到题目要求精度。得到结果:19.ae1H.

    这里写图片描述

    图4.十进制转十六进制
    # 2.R进制转十进制 ## 2.1 二进制转十进制 **方法为:**把二进制数按权展开、相加即得十进制数。(具体用法如下图)

    例题: 1001 0110B = ______ D

    **解析:**如下图所示。得到结果:150D.

    这里写图片描述

    图5.二进制转十进制

    2.2 八进制转十进制

    八进制转十进制的方法和二进制转十进制一样。

    例题: 26Q = ______ D

    **解析:**如下图所示。得到结果:22D.

    这里写图片描述

    图6.八进制转十进制

    2.3 十六进制转十进制

    例题: 23daH = ______ D

    **解析:**如下图所示。得到结果:9178D.

    这里写图片描述

    图7.十六进制转十进制

    3.二进制转八进制

    二进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位。

    例题: 1010 0100B = ____Q

    **解析:**计算过程如下图所示。得到结果:244Q.

    这里写图片描述

    图8.二进制转八进制

    4.二进制转十六进制

    二进制转换成八进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位。

    例题: 1010 0100B = ____H

    **解析:**计算过程如下图所示。得到结果:a4H.

    这里写图片描述

    图9.二进制转十六进制

    5.工欲善其事,必先利其器

    下面的表格是8位二进制所对应的十进制数值,对进制转换以及类似题目的理解非常有用:

    1 1 1 1 1 1 1 1 B
    128 64 32 16 8 4 2 1 D

    注:B:二进制
           D:十进制


    例题: 135D = ______ B

    **解析:**有了上面二进制对应十进制数值的表格,我们就可以将题目给的十进制135拆分为:128+7,再从表格中找到对应的数值,拼凑即可得到答案。
    135D = 128D + 7D = 1000 0111B

    展开全文
  • c++实现十六进制转换二进制

    千次阅读 2013-12-11 15:37:22
     cout请输入十六进制值(最大32位)";  cin>>buff;  char* p=buff;    for (int i = 0; buff[i]!=NULL; i++)  {  cout["]= "[i];  n=i;  }    for(int i=n; buff[i]!=NULL;i--)  ...

    #include "stdafx.h"
    #include<iostream>
    using namespace std;
    int main()
    {
        char buff[64];  
        int n=0;       
        int w=1;       
     int temp=1;
        int number1=0;   
        cout<<"请输入十六进制值(最大32位)"<<endl;
        cin>>buff;
        char* p=buff;
     
     for (int i = 0; buff[i]!=NULL; i++)
     {
      cout<<"buff["<<i<<"]= "<<buff[i]<<endl;
      n=i;
     }
     
     for(int i=n; buff[i]!=NULL;i--)
     {
      if(buff[i]>='0' && buff[i]<='9')
      {
       cout<<n<<endl;
       number1=number1+(buff[i]-'0')*temp;
      }
      else
      if(buff[i]>='a' && buff[i]<='f')
       number1=number1+(buff[i]-'a'+10)*temp;
      temp=temp*16;
     }
        cout << "对应的十进制值:"<< endl;
        cout<< number1<<endl;
     system("pause");
        return 0;
     system("pause");
    }







     


     

    #include "stdafx.h"
    #include<iostream>
    using namespace std;
    int main()
    { 
        char buff[64];   
        int n=0;        
        int w=1;        
     int temp=1;
        int number1=0;    
        cout<<"请输入十六进制值(最大32位)"<<endl;
        cin>>buff;
        char* p=buff;
     
     for (int i = 0; buff[i]!=NULL; i++)
     {
      cout<<"buff["<<i<<"]= "<<buff[i]<<endl;
      n=i;
     }
     
     for(int i=n; buff[i]!=NULL;i--)
     {
      if(buff[i]>='0' && buff[i]<='9')
      {
       cout<<n<<endl;
       number1=number1+(buff[i]-'0')*temp;
      }
      else
      if(buff[i]>='a' && buff[i]<='f')
       number1=number1+(buff[i]-'a'+10)*temp;
      temp=temp*16;
     }
        cout << "对应的十进制值:"<< endl;
        cout<< number1<<endl;
     system("pause");
        return 0;
     system("pause");
    } 
    
    
    展开全文
  • 进制转换十六进制,也就是 采用 除k取余法 ,直接让10处以16,再对 数据如果小于10和大于10进行处理,代码如下: #include<iostream> #include<string> using namespace std; int main() { ...

    十进制转换为十六进制,也就是 采用 除k取余法 ,直接让10处以16,再对 数据如果小于10和大于10进行处理,代码如下:

     

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
    	long a;//输入的数
    	int y=0;//循环中的余数
    	string s="";//输出的结果
    	cin>>a;
    	if(a==0)//0比较特殊,单独处理
    	{
    	cout<<0;
    	return 0;
    	}
     
    	while(a>0)//大于0的数
    	{
    		y=a%16;  //求余
    		if(y<10)   //小于10的余数
    		s=char('0'+y)+s;  //利用字符的ascll码在字符串前面拼接
    		else
    		s=char('A'-10+y)+s;  //大于9的余数用ABCDE表示
    		a=a/16;   
    	}
    	cout<<s;
    	return 0;
    }

     

    十六进制转换为10进制,采取的是 乘以16

    #include<iostream>  
    #include<string>  
    #include<math.h>  
    using namespace std;  
      
    int main()  
    {  
        string s;  
        int i=0,count,sum;  
        while(getline(cin,s))  
        {  
            int count=s.length();  
            sum=0;  
            for(i=count-1;i>=0;i--)//从十六进制个位开始,每位都转换成十进制  
            {  
                if(s[i]>='0'&&s[i]<='9')//数字字符的转换  
                {  
                    sum+=(s[i]-48)*pow(16,count-i-1);  
                }  
                else if(s[i]>='A'&&s[i]<='F')//字母字符的转换  
                {  
                    sum+=(s[i]-55)*pow(16,count-i-1);  
                }  
            }  
            cout<<sum;  
        }  
    }  

     

    十进制 转换为 二进制,采取的是 除2取余法,其中把 2 换成其他小于10的数,可以变成相应的 其他进制

     

    #include<iostream>
    
    using namespace std;
    
    int main(){
    	int a;
    	cin>>a;
    	int result=0;
    	int temp=a;
    	int j=1;
    	while(temp){
    		result=result+j*(temp%2);
    		temp=temp/2;
    		j=j*10;
    	}
    	
    	cout<<result<<endl;
    	
    	
    	return 0;
    } 

     

    展开全文
  • 进制转换器 对于十进制 十六进制二进制等进制进行相互转换 操作简单界面简介
  • JS二进制十六进制转换

    千次阅读 2020-06-02 19:40:28
    JS二进制十六进制转换一、十进制与二进制、八进制、十六进制转换1、 十进制转二进制2、 十进制转八进制3、 十进制转十六进制二、二进制、八进制、十六进制与十进制转换1、 二进制转十进制2、 八进制转十进制3、 ...
  • 二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。 假设当前数字是N进制,那么: 对于整数部分,从右往左看,第i位的位权...
  • 这里只是一个简单的十六进制二进制转换
  • 十六进制转换二进制很简单,我们首先要明白,一位十六进制代表四位二进制,如F对应二进制的1111,A代表二进制的1010,利用这种一一对应的关系,很容易就把十六进制转换二进制,如0x1F6C,其中十六进制1对应...
  • //题目:八进制转换为十进制 #include<stdio.h> #include<math.h> int main() { int i=0,n,tmp,sum=0; scanf("%d",&n); while(n) { tmp=n%10; n=n/10; sum+=tmp*pow(8,i); i++;...
  • import java.math.BigInteger; /** * @author 进制转换 * */ public class cons { ... @SuppressWarnings("unused") ... // TODO 十六进制转换十进制 long result = 0; for(int i=(serial.length-1);i>=0;i-
  • 十进制整数1234对应的八进制和十六进制(字母大写),用空格分开,并且要求,在八进制前显示前导0,在十六进制数前显示前导0X。 【未显示前导 0 或者oX】 #include <stdio.h> int main(){ int i = 1234; ...
  • 二进制转换 二进制转换八进制,计算方法 二进制转换十进制,计算方法 二进制转换十六进制,计算方法 ...十六进制转换二进制,计算方法 . 十六进制转换八进制,计算方法 十六进制转换十进制,计算方法 注意事项
  • Java 二进制十六进制转换
  • 汇编语言 十六进制转换二进制

    万次阅读 多人点赞 2016-12-03 00:21:44
    汇编语言程序,十六进制转换二进制
  • 二进制 二进制就是计算机常用的进制,即逢二进一。例如:1010 八进制 ...上面就是对进制的简单介绍,下面就是对进制转换而进行介绍。 1.二进制转八进制 拿二进制数10010110举例 首先需要3个二进...
  • js二进制十六进制转换

    千次阅读 2019-04-14 22:40:49
    1 转为二进制十六进制转换 var a=130; console.log(a.toString(2));/*10进制转换成2进制*/ console.log(a.toString(8)); /*10进制转换成8进制*/ console.log(a.toString(16)); /*10进制转换成16进制*/ 2 进制...
  • printf("十六进制->二进制\n"); int i,a,b,c,d,k; int x[3]; char m[3]={0,0,0},n[3]; printf("转换数(十六进制):"); scanf("%s",m); for(i=0;i;i++) { if(m[i]>='A'&&m[i]) { x[i]=10+m[i]-65; printf("%d\n",x...
  • 以前将十六进制转换成十进制,总是先将十六进制转换二进制,然后再转换成十进制。今天看到一个题目:将一个十六进制的数转换成一个整数。在网上搜寻,发现除了这样转换以外,还可以像二进制转换成十进制一样,比如...
  • 十六进制转为二进制有两种理解方法,第一是十六进制字符串转二进制字符串,第二是十六进制数转二进制数,下面分别介绍2种转换方法: 1.hex2bin函数可以将十六进制字符串转换二进制字符串,详细用法如下: hex2...
  • 二进制 → 十进制八进制 → 十进制十六进制 → 十进制 (十进制) → (二、八、十六进制) 十进制 → 二进制十进制 → 八进制十进制 → 十六进制二进制) ↔ (八、十六进制二进制
  • PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
  • 进制转换为整数,将十六进制转换为整数
  • 函数原型:   1 2 3 4 //转二进制 char *ConvertTo2String(long number); //转十六进制 char *ConvertTo16String(long ... 转换二进制很简单,二步操作即可完成
  • 二进制,十进制,八进制,十六进制转换

    万次阅读 多人点赞 2019-01-07 23:33:55
    二进制三位一组分开就是八进制, 四位一组就是十六进制 二进制与十进制的转换 (1)二进制转十进制 方法:“按权展开求和” 【例】:整数转换 【例】:小数转换 (0.101)2 = 1x2-1 +0x2-2 +1x2-3 = (0.625)10 规律:...
  • 文章目录【笔记】二进制、八进制、十进制、十六进制进制转换笔记一、二进制转十进制、八进制、十六进制二、八进制转二进制、十进制、十六进制三、十进制转二进制、八进制、十六进制四、十六进制转换二进制、八进制、...
  • 二进制十六进制转换

    千次阅读 2019-10-04 01:28:25
    原文:http://suishoujie.blog.163.com/blog/static/60628058200841552235617/ 十六进制、十进制、二进制转换: 十进制转二进制方法:8421法 例如:把10010110转换成十进制 128 64 32 16 8 4 2...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 155,447
精华内容 62,178
关键字:

十六进制转换二进制