精华内容
下载资源
问答
  • 问题一:实现十六进制转化二进制以及十进制; 实验代码如下: #include <stdio.h> #include <stdlib.h> #include <string.h&...

    问题:实现十六进制转化二进制 八进制 十进制;
    实验代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>
    #define max 100
    void zhuanhua(char*,int);
    void change_1(int);
    void change_2(int);
    int main(int argc, char *argv[]) {
    /*十六进制转化十进制(准备用函数实现)
    个人思路:第一步:函数实现输入的字符串转化成数字;
    第二步:将数字逆序存在数组中;
    第三步:按照十六进制与十进制的转化规则进行转化;
    第四步:输出转化结果*/
    
    //整体实现了输入十六进制 
     char ch_1[max];
     printf("请输入十六进制的数:");
     int i,m;
     char *p; 
     scanf("%s",ch_1);
     m=strlen(ch_1); 
     //出错原因对字符以及字符串的理解不透彻 
    // for(i=0;i<max;i++){  
    //  scanf("%c",&s);
    //  sum++;        //统计出十六进制位数 
    //  ch_1[i]=s;
    //  if(s=' ')
    //  break;
    // } 
     printf("输出字符串的个数:%d\n",m); 
     printf("将字符串挨个输出:"); 
     int j;
     for(j=0;j<m;j++){
     printf("%c  ",ch_1[j]);
     }
     printf("\n");
     //第一次出原因的地方是输入的字符串没有按自己的设想放入到数组中;
    //发现sum就没有进行累加,一直都是1; 
     zhuanhua(ch_1,m);
     return 0;
    }
    void zhuanhua(char*p,int m){
     int i,j,l=0; 
     int sum=0;
     static int ch_2[max];
     for(i=m-1;i>=0;i--){
      if(*(p+i)>='1'&&*(p+i)<='9'){
       ch_2[l]=*(p+i)-'0';
      }else if(*(p+i)>='A'&&*(p+i)<='F'){
       ch_2[l]=*(p+i)-'A'+10;
      }
      l++;
     }
     printf("将字符串转化成数字然后逆序输出:"); 
     //转化十进制; 
     for(j=0;j<m;j++){
      sum+=ch_2[j]*pow(16,j);
      printf("%d ",ch_2[j]);
     }
     
     printf("\n");
     printf("输出转化成的十进制:%d\n",sum); 
     //转化二进制;
     printf("输出二进制:");
     change_1(sum);
     //转化八进制 
     printf("\n");
     printf("输出转化后的八进制:");
     change_2(sum);
     }
     void change_1(int n)            //用递归求二进制可以更深刻的理解递归函数; 
    {
        if (n == 0)
            return;
        else
        {
            change_1(n / 2);
            printf("%d", n % 2);
        } 
    }
    void change_2(int n){
     if (n == 0)
            return;
        else
        {
            change_2(n / 8);
            printf("%d", n % 8);
        }
    }    
    

    十六进制转化二进制方法二:

    #include <stdio.h>
    #include <stdlib.h>
    #define M 100
    //十六进制转化二进制 
    void erjin(int n);
    int zhuanhua(char *m);
    int main(int argc, char *argv[]) {
    	char a[M];
    	char *p;
    	printf("请输入一个十六进制数:"); 
    	scanf("%s",a);
    	int m=strlen(a);
    	int i,j;
    	for(i=0;i<m;i++){
    		int k=zhuanhua(a+i);
    		if(k>7){
    			erjin(k);
    		}else if(k<=7&&k>3){
    			printf("0");
    			erjin(k);
    		}else if(k<=3&&k>=1){
    			printf("0");
    			printf("0");
    			erjin(k);
    		}else if(k==1){
    			printf("0");
    			printf("0");
    			printf("0");
    			erjin(k);
    		}
    		else{
    			printf("0");
    			printf("0");
    			printf("0");
    			printf("0");
    		}		
    	} 
    	return 0;
    }
    int zhuanhua(char *m){
    	if(*m>'0'&& *m<='9'){
    		return *m-'0';
    	}else{
    		return *m-'A'+10;
    	}
    }
    void erjin(int n){
    	if(n==0){
    		return ;
    	}else{
    		erjin(n/2);
    		printf("%d",n%2);
    	}
    }
    

    运行结果:

    展开全文
  • 问题:实现八进制转化 二进制 十进制 十六进制。 代码如下: #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt;math.h&amp;gt; #define max 100...

    问题一:实现八进制转化 二进制 十进制 十六进制。
    代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #define max 100 
    void change_1(int);
    void change_2(int);
    int main(int argc, char *argv[]) {
     int c; 
     int n,sum_1=0,sum_2=0; 
    //第一步:输入一八进制数; 
     printf("请输入一个八进制数:"); 
      scanf("%d",&c);
      while(c){
      n=c%10;
      sum_1+=n*pow(8,sum_2);
      sum_2++;
      c/=10;
     }
     printf("输出转化后的十进制:%d\n",sum_1);
     printf("输出转化后的二进制:"); 
     change_1(sum_1);
     printf("\n");
     printf("输出转化后的十六进制字符串:"); 
     change_2(sum_1);
     return 0;
     }
    //十进制转化二进制函数; 
    void change_1(int n){
     if(n==0){
      return; 
     }else{
      change_1(n/2);
      printf("%d",n%2);
     }
    }
    //十进制转化十六进制函数;
    void change_2(int n){
     int s;
     char m;
      if(n==0){
      return; 
     }else{
      change_2(n/16);
      s=n%16;
      if(s>=0&&s<=9){
       m=s+'0';
       printf("%c",m);
      }else if(s>=10&&s<=15){
       m=s+55;
       printf("%c",m);
      }
     }
    }

    运行结果:

    问题二:实现二进制转化 八进制 十进制 十六进制
    代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    void zhuanhua_1(int);
    void zhuanhua_2(int);
    int main(int argc, char *argv[]) {
     int n,m,i=0,sum=0;
     printf("请输入二进制:");
     scanf("%d",&n);
     while(n){
      m=n%10;
      sum+=m*pow(2,i);
      i++;
      n/=10;
     } 
     printf("输出二进制转化成的十进制:%d\n",sum);
     printf("输出二进制转化成的八进制:");
     zhuanhua_1(sum);
     printf("\n");
     printf("输出转化后的十六进制字符串:"); 
     zhuanhua_2(sum); 
     return 0;
    }
    void zhuanhua_1(int n){
     if(n==0){
      return;
     }else{
      zhuanhua_1(n/8);
      printf("%d",n%8);
     }
    }
    void zhuanhua_2(int n){
     int s;
     char m;
      if(n==0){
      return; 
     }else{
      zhuanhua_2(n/16);
      s=n%16;
      if(s>=0&&s<=9){
       m=s+'0';
       printf("%c",m);
      }else if(s>=10&&s<=15){
       m=s+55;
       printf("%c",m);
      }
     }
    }

    运行结果:

    展开全文
  • #include #include < string .h> #include int hex2dec( ...%s转化结果:%s\n " ,hex,print); memset(print, 0 , 65 ); } } 转载于:https://www.cnblogs.com/qiangua/p/3645129.html
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int hex2dec(char c)
    {
        int i=0;
        //char cc[1]={0};
        //cc[0]=c;
        if(c>='0'&&c<='9')  
            i=c-'0';       //('0')48-48=0
        else if(c>='A'&&c<='Z')
            i=c-'0'-7;    //(A)65-48-7=10
        else if(c>='a'&&c<='z')
            i=c-'0'-39;  //(a)97-48-39=10
        //if(cc[0]>='0'&&cc[0]<='9')  
     //       i=cc[0]-'0';       //('0')48-48=0
        //else if(cc[0]>='A'&&cc[0]<='Z')
        //    i=cc[0]-'0'-7;    //(A)65-48-7=10
        //else if(cc[0]<='a'&&cc[0]<='z')
        //    i=cc[0]-'0'-39;  //(a)97-48-39=10
        else
        {
            printf("error!\n");
            exit(0);
        }
        return i;
    }
    int main()
    {
        int j=0;
        int index=0;
        char print[65]={0};
        char *str[16]=
        {
            "0000","0001","0010","0011",    //0-3
            "0100","0101","0110","0111",    //4-7
            "1000","1001","1010","1011",    //8-11
            "1100","1101","1110","1111"     //12-15
        };
        char hex[17];
        while (1)
        {
            scanf("%s",hex);
            for(j=strlen(hex)-1;j>=0;j--)
            {
                index=hex2dec(hex[j]);
                strcat(print,str[index]);
                strcat(print," ");
            }
            printf("%s转化结果:%s\n",hex,print);
            memset(print,0,65);
        }
        
    
    }

    转载于:https://www.cnblogs.com/qiangua/p/3645129.html

    展开全文
  • 小白求指教..... BYTE str[8]; str[0] = '\xA0'; 想把str[0]中的十六进制转化二进制,怎么转呀?
  • 十六进制转化为其他进制: 进制转化为其他进制: 代码实现: public class Tset1 {  public static void main(String[] args){  System.out.println(Math.pow(2,7)+Math.pow(2,6)+Math.pow(2,5)+Math....

    十六进制转化为其他进制:



    二进制转化为其他进制:


    代码实现:

    public class Tset1 {
         public static void main(String[] args){
            System.out.println(Math.pow(2,7)+Math.pow(2,6)+Math.pow(2,5)+Math.pow(2,4)+
             Math.pow(2,3)+Math.pow(2,2)+Math.pow(2,1)+Math.pow(2,0));
     }
    }

    结果 :255.0

    在上面代码基础上加  System.out.println(Math.pow(2, 8)-1);


    十进制转化为其他进制:




    展开全文
  • 主要介绍了javascript十六进制二进制转化的方法,涉及javascript中toString方法的使用技巧,需要的朋友可以参考下
  • 如何在Python中将二进制字符串转换为相应的十六进制值?我有0000 0100 1000 1101,我想使用Python 2.6获得048D。参考方案int以2为底,然后是hex:>>> int('010110', 2)22>>> hex(int('010110', 2))...
  • 1、将十六进制字符串转化为十进制整数WORD DEC( CString str ){WORD decvalue=0;int i=0;for( i=0 ; i&ltstr.GetLength() ; i++){if(str[i]&gt= 'a'&&str[i]&lt='f'){decvalue*=16;decvalue+=...
  • 1,首先将十六进制转化二进制,再将二进制转化为八进制; 2,将十六进制转化二进制用了switch语句的“蒟蒻”方法来写的; 3,将二进制转化为八进制,三位三位的进行转化:如二进制001转化为八进制:0*4+0*2+1*1...
  • 1. 首先明白第一点,如图。他们的交叉点局势二进制。这很重要 2.二进制和十进制的转换。十进制是最常用的。比如说小芳今年18岁。18是十进制,转成二进制,怎么弄?...4.二进制十六进制转化。...
  • 计算机数据进制转化二进制 十进制 八进制 十六进制),以及机器码(原码 反码 补码)。
  • 该代码是实现二进制转化十六进制,可以用在嵌入式开发中,在嵌入式中,首先利用图片转换工具,将每个图片的像素点转换为二进制,然后在将使用该代码,将装换的二进制变为十六进制
  • (一)十进制化为二进制: package test; public class test { public static void main(String[] args... //十进制转化二进制 public static void tobin(int num) { StringBuffer ab=new StringBuffer(); wh
  • 十六进制二进制之间有非常方便的转化关系: 一位16进制数可以之间转变成4位二进制数,可记住如下关系之间转换
  • 刚开始想的是先把十六进制转化为十进制,然后十进制再转化为八进制,但是发现当数据量太大的时候,计算量太大,可能会超时,所以这里改为先转化为二进制再转化为八进制。 代码: #include<iostream> #include&...
  • (一)计算机的数制一、数制就是用统一的方法计数1.十进制 数值是0~9 逢十进一2....十六进制 数值0~9 A~F 逢十六进一二、数位一个数字所在的位置1000 4位 个0 十1 百2千310101 二进制 5位 01234三、基数基数是数制中...
  • VB语言中级制,十六进制和十进制的相互转化算法,多种方法举例,附有详细的代码注释
  • 十六进制转化二进制

    千次阅读 2008-11-25 09:04:00
    ===========================================================================代码老张所有 用途:将十六进制转化二进制 输入:Hex(十六进制数) 输入数据类型:String 输出:HEX_to_BIN(二进制数) 输出数据类型...
  • 十六进制 到 十进制 使用 int() 函数 ,第一个参数是字符串 '0Xff' ,第二个参数是说明,这个字符串是几进制的数。 转化的结果是一个十进制数。 >>> int('0xf',16) 15 二进制 到 十进制 >>> ...
  • C++ [进制转换]十六进制转化二进制 思路:利用输入十六进制字符串,然后从前往后逐一提取单一字符,转换为整形变量,在应用 switch-case 来对应到此数对应的二进制四位上。 注意:字符转换为整形变量时应该考虑 ...
  • //数组的操作//十进制转化十六进制右移有两种:右移运算符> > (有符号)用来将一个数的各二进制位全部右移若干位.例如:a = a> > 2,使a的各二进制位右移两位,移到右端的低位被舍弃,最高位则移入原来高位...
  • 十六进制转化十进制

    2018-10-04 21:07:14
    /*算法是先把十六进制的字符串中的字母,数字(char)全部转化为数字(int)。然后从最高位开始,也就是String的第一个在字符代表的数字a1,开始乘16,继续循环, * a1不断的乘16直到最后的,当然a2从第次开始乘16也...
  • public class HeiMa { public static void main(String[] args){ int num = 26; // toConvertBinary(num); // toConverHex2(-60); toConverHex3(-60);... static void toConvertBinary(int num){ ...
  • 简单来讲: ...十六进制(逢十六进一) 代码实现:(十进制转二进制) public class JAVA { public static void main(String[] args) { int num = 10; for (int i = 0; i < 32; i++) { System...
  • 本文主要说明一下这几个进制整数之间的转化方法,对于其他运算法则之类的或者还有深入的知识以及其他的进制不做介绍。 首先介绍下各个进制的组成和运算规则: 十进制:人们常用的是十进制。... 二进制:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,389
精华内容 555
关键字:

十六进制转化二进制