c语言-c++ 进制转换由十六进制转换成二进制

问题描述

c++ 进制转换由十六进制转换成二进制

void change16_2()
{
printf("十六进制->二进制
");
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
{
if(m[i]>='A'&&m[i]<='F')
{
x[i]=10+m[i]-65;
printf("%d
",x[i]);
}
else
{
if(m[i]>='0'&&m[i]<='9')
{
x[i]=m[i]-48;
printf("%d
",x[i]);
}
else
{
printf("输入错误!
");
}
}
}
for(i=0;i<3;i++)
{
printf("%d=%c
",i,x[i]);
}
for(a=0;a<=1;a++)
{
for(b=0;b<=1;b++)
{
for(c=0;c<=1;c++)
{
for(d=0;d<=1;d++)
{
if(m[0]==8*a+4*b+2*c+d)
{
printf("a=%d
",a);
printf("b=%d
",b);
printf("c=%d
",c);
printf("d=%d

",d);
n[2]=a*1000+b*100+c*10+d;
}
if(m[1]==8*a+4*b+2*c+d)
{
printf("a=%d
",a);
printf("b=%d
",b);
printf("c=%d
",c);
printf("d=%d
",d);
n[1]=a*1000+b*100+c*10+d;
}
if(m[2]==8*a+4*b+2*c+d)
{
printf("a=%d
",a);
printf("b=%d
",b);
printf("c=%d
",c);
printf("d=%d
",d);
n[2]=a*1000+b*100+c*10+d;
}
}
}
}
}
k=n[0]*100000000+n[1]*10000+n[2];
printf("k=%d
",k);
printf("转化为(二进制):");
for(i=0;i<3;i++)
{
printf("%c",n[i]);
}
printf("

");
}
进制转换怎么不对,如果m字符串 输入A 就会输出两次“输入错误”,这是为什么,这里的输入要怎么改

解决方案

16进制转2进制需要那么复杂么?直接查表就可以了。每个16进制字符对应4个二进制字符

 void printhextobin(char c)
{
    char x[17][5] = {
        "0000", "0001", "0010", "0011",
        "0100", "0101", "0110", "0111",
        "1000", "1001", "1010", "1011",
        "1100", "1101", "1110", "1111", "xxxx"
    };
    int n = 16;
    if (c >= 'a' && c <= 'f') n = c - 'a' + 10;
    if (c >= 'A' && c <= 'F') n = c - 'A' + 10;
    if (c >= '0' && c <= '9') n = c - '0';
    printf("%s", x[n]);
}
int main()
{
    char c[] = "abc123";
    for (int i = 0; i < 6; i++) printhextobin(c[i]);
}

101010111100000100100011

解决方案二:

二进制到十六进制转换法加各种进制的运算
Python进制转换(二进制、十进制和十六进制)
进制数及其转换(二进制,十进制,十六进制)

时间: 2024-11-03 22:29:13

c语言-c++ 进制转换由十六进制转换成二进制的相关文章

C语言中进制知识汇总_C 语言

1.什么是进制 进制是一种计数的方式,常用的有二进制.八进制.十进制.十六进制.任何数据在计算机内存中都是以二进制的形式存放的. 我对进制的个人理解,二进制数是以2为计算单元,满2进1位的数:八进制数是以8为计算单元,满8进1位的数. 对于任何一个数字,我们都可以用不同的进制来表示,比如,十进制数12,用二进制表示为1100,用八进制表示为14,用十六进制表示为0xC. 2.进制的转换规则 遵循满进制值进1位,个位数变为0的原理,下面我们以十进制数18为例,对1-18中每一个数值转换各种进制做一

..............如何把一组16进制数分别截取转换成ASCII

问题描述 如何把一组16进制数分别截取转换成ASCII比如一个数组中包括"202020302020203530"如何把"20202030"转换成ASCII然后再把"20203530"转换成ASCII 解决方案 解决方案二:string[]array=str.Split('');foreach(stringsinarray){intn=int.Parse(s,System.Globalization.NumberStyles.HexNumber);

asp.net 10进制字符串转换为十六进制字符串

asp教程.net 10进制字符串转换为十六进制字符串 public string strtohex(string mstr) //返回处理后的十六进制字符串     {     return bitconverter.tostring(     asciiencoding.default.getbytes(mstr)).replace("-", " ");     } /* strtohex */    16进制字符串转换为10进制字符串  public stri

查找字符串数组中16进制数,并转换【原创】

  查找字符串数组中16进制数,并转换 #include <stdio.h> #include <stdlib.h> #include <string.h> void string_to_hex(unsigned char* input, int input_len, unsigned char* output, int output_len) { unsigned char tmp; int i; if (input_len > output_len*2) re

asp.net(c#)下各种进制间的轻松转换(2进制、8进制、10进制、16进制)

其中的两个方法可以轻松的实现各种进制的数值间的转换: Convert.ToInt32(string value, int fromBase): 可以把不同进制数值的字符串转换为数字,其中fromBase参数为进制的格式,只能是2.8.10及16: 如Convert.ToInt32("0010",2)执行的结果为2; Convert.ToString(int value, int toBase): 可以把一个数字转换为不同进制数值的字符串格式,其中toBase参数为进制的格式,只能是2.

2进制、8进制、10进制、16进制...各种进制间的轻松转换

转换 在.net Framework中,System.Convert类中提供了较为全面的各种类型.数值之间的转换功能.其中的两个方法可以轻松的实现各种进制的数值间的转换: Convert.ToInt32(string value, int fromBase): 可以把不同进制数值的字符串转换为数字,其中fromBase参数为进制的格式,只能是2.8.10及16: 如Convert.ToInt32("0010",2)执行的结果为2; Convert.ToString(int value,

c#实现16进制和字符串之间转换的代码_C#教程

十六进制字符串与数值类型之间转换(C# 编程指南) 以下示例演示如何执行下列任务: 获取字符串中每个字符的十六进制值. 获取与十六进制字符串中的每个值对应的字符. 将十六进制 string 转换为整型. 将十六进制 string 转换为浮点型. 将字节数组转换为十六进制 string. 示例 此示例输出 string 中的每个字符的十六进制值.首先,它将 string 分析为字符数组,然后对每个字符调用 ToInt32(Char) 以获取相应的数字值.最后,在 string 中将数字的格式设置为

二进制-关于C++中数字字符串和进制转换的问题,在线等

问题描述 关于C++中数字字符串和进制转换的问题,在线等 有一串数字字符串"20150902153100" 将他以二进制的方式进行存入,然后再转成16进制读出. 关于转成二进制就是例如34就是00100010,然后我读出来是22 在C++中应该怎么实现? 解决方案 直接把34转换成十六进制,然后二进制显示就是00100010,你读取出来的时候把他当十六进制读取,就是34了 解决方案二: 进制转换(字符串问题)16进制字符串转换为数字C++进制转换问题------------------

编写C语言程序进行进制转换的问题实例_C 语言

题目     题目描述:      将M进制的数X转换为N进制的数输出.      输入:      输入的第一行包括两个整数:M和N(2<=M,N<=36).      下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出.      输出:      输出X的N进制表示的数.      样例输入:      16 10      F      样例输出:      15      提示:      输入时字母部分为大写,输出时为小写,并且有大数据.  思路