首页 > 编程知识 正文

java十六进制转十进制函数,python课后题

时间:2023-05-03 08:10:14 阅读:150499 作者:3537

[编程问题]二进制转换

3/3 [编程问题]进制变换

时间限制: C/C 1秒,其他语言2秒

空间限制: C/C 32M、其他语言64M

编写程序,接受十六进制数,并输出该数值的十进制表示。 (多组同时输入)

输入说明:

输入十六进制数值字符串。

输出说明:

输出此数值的十进制字符串。

输入示例1:

0xA

输出示例1:

10

个人方法

十六进制- -十进制的想法:例如0x209

如果去掉“ox”,则剩下209(3位(个-9、十-0、百-2) )。

十进制数=2 16^2 0 16^1 9 16^0=521

python :

#! /usr/axdjc/env python2

#-* -编码: utf-8-* -

''''

2020年03月04日

@author: oucbl

''''

#十进制十六进制

#defdeC2hex(dnum ) :

# hexNum=[] # 16十六进制字符串(逆序/堆栈) )

#

# while dnum=0:

# mod16=dnum % 16

# hex num.append (str (hex 16 [ mod 16 ] ) )

# dnum /=16

#

# if dnum==0 :

# break

#

# hex num='0x ' '.join ([ cforcinhexnum [ :3360-1 ] ) )

# return hexNum

#十六进制旋转十进制

defhex2dec(hnum ) :

decnum=0 # 10进制

hnum=hnum[2:] #删除前两位的标识符

Lenth=Len(hnum ) #十六进制长度

forIinrange(Lenth ) :

bNum=lenth - i -1 #位

weight=16 ** bNum #权重

bvalue=hex16.index(hnum[I] )位值

decnum =weight * bValue

return decnum

if __name__=='__main__':

HEX16=['0','1','2','3','4','5','6','7','8','9',

' a ',' b ',' c ',' d ',' e ',' F'] #进制和十进制对照表

try:

while True:

n=raw_input(#python2接收非数字字符

IFstr(n )=='' :

布莱克

printhex2dec(n ) #用十六进制数转十进制数

except:

通过

c :

/*******************************。

Author: oucbl

Date: 2020.03.05

******************************

#包含

#包含

using namespace std;

intcharindex(charc )//查找数组元素的位置

{

string HEX16='0123456789ABCDEF ';//十六进制和十进制对照表

int idx=0; //元素位置

for(intj=0; j 16; j )

{

if(c==hex16[j] ) )

{

idx=j;

布雷克;

}

}

return idx;

}

longhex2dec(stringhex_str ) /十六进制转换为十进制

{

long decnum=0;//十进制

int len=hex_str.length (; //(十六进制)字符数组的长度

for(intj=2; j len; j )//从第二个元素开始扫描

{

int bNum=len - j -1; //位数

longweight=pow(16,bNum ); //权重

intbvalue=charindex(hex_str[j] ); //位值

decnum =weight * bValue;

}

返回de cnum;

}

int main () )

{

字符串hex;

//cin获取整行,空行结束循环

wile(Getline(CIN,hex ) )

{

if(hex.length ()==0) ) ) ) ) ) ) ) )。

布雷克;

出局

}

返回0;

}

优秀的分析

1 .内置变换(python ) )

while True:

try:

打印(int (input ),16 ) )

except:

布莱克

2 .内置转换器(c ) )。

#包含

using namespace std;

int main () )

{

int a;

wile () (CinHexa ) }

cout a endl;

}

返回0;

}

/*

* C输出十六进制数为cout hex a;

*八进制为cout oct a;

*/

3 .内置转换器(c ) )。

#包含

int main ()。

int a;

while(Scanf ) ' %x ',a )!=EOF )

printf(%d(n ),a );

返回0;

}

4 .内置转换(java )。

/*

直接调用Java的解码方法。

此方法的作用是将字符串解码为整数。 接受十进制、十六进制、八进制。

根据要解码的string(Mn )的形式转换为不同的进制数。 mn由符号、基数描述符和字符串三部分组成。 -0X123中-是符号位,0X是基数说明符(0是八进制,0X,0X,#是十六进制,如果什么都不写就意味着十进制),123是数字字符串。

*/

import java.util.Scanner;

public class Main {

publicstaticvoidmain (string [ ] args ) throws Exception{ )。

sannersc=newscanner(system.in;

while(sc.Hasnext ) ) ) )。

String str=sc.next (;

system.out.println (integer.decode (str ) );

}

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。