【题解】【PTA-Python题库】第3章-9 字符串转换成十进制整数 (15 分)
发布日期:2022-03-18 05:04:32
浏览次数:8
分类:技术文章
本文共 1018 字,大约阅读时间需要 3 分钟。
字符串转换成十进制整数
输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。
输入格式:
输入在一行中给出一个以#结束的非空字符串。
输出格式:
在一行中输出转换后的十进制数。题目保证输出在长整型范围内。
输入样例:
+-P-xf4+-1!#
输出样例:
-3905
思路:
读取整行字符串,然后到“#”截止,取出十六进制部分,用flag标记是否为负数。(注意输入没有一个字符可以转成十六进制的时候,输出0)
代码如下:
s=input()st=""for i in s: if(i=='#'): break st=st+it=""flag=0f=0sum=0for i in st: if(i=='-' and flag==0): f=1 if(i>='0' and i<='9')or(i>='a' and i<='f')or(i>='A' and i<='F'): t=t+i flag=1if(f): for i in t: if (i >= '0' and i <= '9'): sum = sum * 16 + ord(i) - 48 elif (i >= 'a' and i <= 'f'): sum=sum * 16+ord(i)-87 elif (i>= 'A' and i <= 'F'): sum=sum * 16+ord(i)-55 print(sum*-1)else: for i in t: if (i >= '0' and i <= '9'): sum = sum * 16 + ord(i) - 48 elif (i >= 'a' and i <= 'f'): sum=sum * 16+ord(i)-87 elif (i>= 'A' and i <= 'F'): sum=sum * 16+ord(i)-55 print(sum)
转载地址:https://tuenity.blog.csdn.net/article/details/102564795 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年03月22日 21时45分18秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
php中的变量名称用什么表示,PHP变量,方法,类等名称中的有效字符是什么?
2021-06-24
solr比mysql的优势_Solr与Elasticsearch的优缺点比较总结和归纳
2021-06-24
华为博士招聘上机考试题目_牛客网-华为-2020届校园招聘上机考试-3
2021-06-24
python中for可以做变量名吗_Python中使用动态变量名的方法
2021-06-24
mysql 日期转换天数_MySQL 日期操作 增减天数、时间转换、时间戳
2021-06-24
java对象去重复_JAVA中List对象去除重复值的方法
2021-06-24
java bss_[转] .bss段和.data段的区别
2021-06-24
java上传图片损坏_大神求助 上传图片后 图片损坏
2021-06-24
java socket唯一标识符_Java Socket编程之常识网络基础知识
2021-06-24
java给xyz大小排序_java递归实现string xyz排序
2021-06-24
arctime必须要java_Arctime使用教程 Arctime常见问题解答
2021-06-24
mysql 自适应字段宽度_box-sizing解决自适应布局容器宽度问题
2021-06-24
java 配置文件配置路径_Java读取配置文件路径设置
2021-06-24
vux 选择器_vue中的scoped分析以及在element-UI和vux中的应用
2021-06-24