将十进制转换为二进制的c语言程序,十进制转换为二进制c语言编程
【编程问题】二进制转换
3/3【编程问题】二进制变换
时间限制:C/C为1秒,其他语言为2秒
空间限制:C/C 32M,其他语言64M
编写一个程序,接受十六进制数并输出十进制数。(多组同时输入)
输入描述:
输入十六进制数字字符串。
输出描述:
输出该值的十进制字符串。
示例1:
0xA
输出示例1:
10
个人方法
十六进制-十进制思想:例如,0x209
如果去掉“ox”,则剩下209(3个数字(a -9,10-0,100-2))。
十进制数=2 16 2 0 16 1 9 16 0=521
python:
#!/usr/zgdhk/env python2
#-*-编码:utf-8-*-
""
2020年3月4日
@作者:oucbl
""
#十进制十六进制
#defdeC2hex(dnum):
# hexNum=[] # 16十六进制字符串(逆序/堆栈))
#
#当dnum=0时:
# mod16=dnum % 16
# hex num . append(str(hex 16[mod 16]))
# dnum /=16
#
#如果dnum==0:
#休息
#
#十六进制数=“0x”。join ([ cforcinhexnum [ :3360-1 ])
#返回hexNum
#十六进制旋转十进制
defhex2dec(hnum):
Decnum=0 # 10十进制
Hnum=hnum[2:] #删除前两位数字的标识符
Lenth=Len(hnum) #十六进制长度
forIinrange(长度) :
BNum=lenth-i -1 #位
重量=16 ** bNum #重量
Bvalue=hex16.index(hnum[I]) #位值
decnum=重量* b值
返回数字
if __name__==__main__ :
HEX16=[0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ,
a , B , C , D , E , F] #十进制与十进制的对照表
尝试:
虽然正确:
N=raw_input(#python2接收非数字字符
IFstr(n )== :
黑色
将十六进制数转换为十进制数
除了:
及格
丙:
/*******************************。
作者:oucbl
日期:2020年3月5日
******************************
#包括
#包括
使用命名空间std
Intcharindex(charc )//查找数组元素的位置
{
string hex 16= 0123456789 abcdef ;//十六进制和十进制对照表
int idx=0;//元素位置
for(intj=0;j 16j)
{
if(c==hex16[j]))
{
idx=j;
布莱克;
}
}
返回idx
}
lone 2 dec(string hex _ str)/十六进制到十进制的转换
{
long decnum=0;//十进制系统
int len=hex _ str . length(;//十六进制字符数组的长度
for(intj=2;j lenJ )//从第二个元素开始扫描
{
int bNum=len-j-1;//位数
longweight=pow(16,bNum);//重量
intb value=char index(hex _ str[j]);//位值
decnum=weight * bValue
}
返回decnum
}
int main())
{
字符串十六进制;
//cin得到整行,空行结束循环。
wile(Getline(CIN,十六进制) )
{
if(hex.length ()==0)))))))))))).
布莱克;
出了
}
0;
}
出色的分析
1.内置转换(python))
虽然正确:
尝试:
Print (int (input),16))
除了:
黑色
2.内置转换器(C))。
#包括
使用命名空间std
int main())
{
int a;
wile () (CinHexa ) }
cout a endl
}
0;
}
/*
* C输出的十六进制数是cout hhex a;
cout oct a的八进制;
*/
3.内置转换器(C))。
#包括
int main().
int a;
while(Scanf ) %x ,a)!=EOF)
printf(%d(n),a);
0;
}
4.内置转换(java)。
/*
直接调用Java的解码方法。
这个方法的作用是将一个字符串解码成一个整数。接受十进制、十六进制和八进制。
根据要解码的字符串(Mn)的形式来解码。它由mn符号、基数描述符和字符串组成。-0X 123-是符号位,0X是基址说明符(0是八进制,0X,0X,#是十六进制,如果没有写入任何内容,则表示十进制),123是数字字符串。
*/
导入Java . util . scanner;
公共类Main {
publistaticvoidmain(string[]args)抛出异常{).
sanner sc=new scanner(system . in;
而(sc。Hasnext))))).
string str=sc . next(;
system . out . println(integer . decode(str));
}
}
}