R7-3 十六进制字符串转换成十进制非负整数

分数 15
全屏浏览题目
切换布局
作者 颜晖
单位 浙大城市学院

输入一个以#结束的字符串,滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,输出该字符串并将其转换为十进制数后输出。

输入格式:

输入在一行中给出一个不超过80个字符长度的、以#结束的非空字符串。

输出格式:

第1行中输出已滤去所有非十六进制字符的字符串。
在第2行中输出转换后的十进制数。题目保证输出结果在长整型范围内。

输入样例:

-zy1+Ak0-bq?#
 

输出样例:

1A0b
6667
 
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
代码:
 1 #include <stdio.h>
2 #include <string.h>
3 #include <math.h>
4
5 int main()
6 {
7 char str[85];
8 char ch;
9
10 ch = getchar();
11 int len = 0;
12 while(ch != '#'){
13 if( (ch >= '0' && ch <= '9') ||
14 (ch >= 'a' && ch <= 'f') ||
15 (ch >= 'A' && ch <= 'F') ){
16 str[len++] = ch;
17 }
18 ch = getchar();
19 }
20 int i;
21 long long num = 0;
22 for(i = 0;i < len;i++){
23 if(str[i] >= '0' && str[i] <= '9'){
24 num += pow(16, len - i - 1) * (str[i] - '0');
25 }else if(str[i] >= 'a' && str[i] <= 'f'){
26 num += pow(16, len - i - 1) * (str[i] - 'a' + 10);
27 }else{
28 num += pow(16, len - i - 1) * (str[i] - 'A' + 10);
29 }
30 }
31 printf("%s\n%lld\n", str, num);
32
33 return 0;
34 }

R7-3 十六进制字符串转换成十进制非负整数的更多相关文章

  1. Java中将0x开头的十六进制字符串转换成十进制整数

    1.Integer.toString(int i) 由于input(输入数据)是以0x开头的字符串,并不是整型.因而在用 String s = Integer.toString(input); 时用会 ...

  2. IOS 十六进制字符串转换成UIColor

    /** * 十六进制转换成UIColor * * @param stringToConvert 十六进制字符串 * * @return UIColor */ +(UIColor *) hexStrin ...

  3. C++中char类型的十六进制字符串转换成字节流

    如a[5]="1234"转换成a[5]={0x12,0x34} 代码如下: void HexStrToByte(const char* source, unsigned char* ...

  4. C++实现16进制字符串转换成int整形值

    开发中经常需要把16进制字符串转换成整形,写了个个代码供大家参考下: #include <stdio.h> #include <string.h> //字符转换成整形 int ...

  5. C语言-数字字符串转换成这个字符串对应的数字(十进制、十六进制)

    数字字符串转换成这个字符串对应的数字(十进制.十六进制) (1)数字字符串转换成这个字符串对应的数字(十进制) 要求:这个字符串参数必须包含一个或者多个数字,函数应该把这些数字转换为整数并且返回这个整 ...

  6. C语言将字符串转换成对应的数字(十进制、十六进制)【转】

    转自:http://wawlian.iteye.com/blog/1315133 问题1:讲一个十进制数字的字符串表示转换成对应的整数.举例:将“”转换成整数1234. C代码 收藏代码 /*将字符串 ...

  7. 【转】C语言将字符串转换成对应的数字(十进制、十六进制)

    转自:http://wawlian.iteye.com/blog/1315133 1.一个十进制数字的字符串表示转换成对应的整数.举例:将“1234”转换成整数1234 /*将字符串s转换成相应的整数 ...

  8. 用Linux/Unix命令把十六进制转换成十进制(转)

    那天写个脚本,需要把十六进制的数字转成十进制的打出来,发现不知道要怎么弄,搜一下,原来还是很简单的,比用C语言什么的容易多了,就一些现成的命令就解决了. 先列两种简单的方法: 1) echo 自己就能 ...

  9. C语言十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方

    #include <stdio.h> /* 十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方: 在16进制中:a(A)=10 b(B)=11 c(C)=12 d(D)= ...

  10. WUSTOJ 1237: 将八进制的字符串转换成等价的十进制字符串(Java)

    1237: 将八进制的字符串转换成等价的十进制字符串 题目   输入八进制,输出十进制.更多内容点击标题. 分析   输入的八进制数有20位.已经超出了Integer.MAX_VALUE的范围,因此此 ...

随机推荐

  1. ubuntu20.04虚拟机无法自动获取IP地址

    具体操作 # ens33 为网卡名称 sudo dhclient ens33

  2. array copy() 的简单使用

    源码: public static native void arraycopy(Object src, int srcPos, Object dest, int destPos,int length) ...

  3. VMware-查看虚拟机版本

    [root@localhost /]# uname -a Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22: ...

  4. virtualenv指定使用本地某个版本python

    virtualenv -p D:\env\py37_1\Scripts\python3.exe time01 红色的地方是 你本地python解释器的安装路径,后面黄色部分是创建的虚拟环境的名称. 另 ...

  5. Windows Service调试方法小结

    方法1:log记录 这是一个通用的调试方法,效率比较低,但比较实用,通过查看日志,总能达到调试的目的 方法2:附加到进程 这是Windows Service程序调试的常用方法,缺点是对Windows环 ...

  6. Rstudio 快捷键无法使用

    今天突然发现我的R studio 很多快捷键不能使用,后面发现是因为Rstudio 的快捷键与MobaXterm的快捷键起冲突了,后面关掉MobaXterm后就恢复了,如果有类似的问题可以在自己电脑打 ...

  7. 【windows】bat脚本、批处理文件

    ::当前盘符 @echo current pan : %~d0 ::当前路径 @echo current path : %cd%\ ::当前bat文件路径 @echo the bat's path : ...

  8. js树搜索框查询所有匹配节点及父节点(纯js实现)

    // 搜索框输入查询树节点(纯前台js) //name 搜索框输入的值: //wgObj.dwtreeDateAll 为树 的全量数据 // titleArr 与输入框匹配的节点数组 //arrTar ...

  9. react native 状态栏和安全区域的使用

    1.  状态栏组件,react native文档提供了说明.我需要的是设置透明效果,如下图. 代码如下 <StatusBar translucent={true} backgroundColor ...

  10. python multiprocessing调用cython openmp方法需要采用spawn方式

    先说结论,在Linux系统,如果python multiprocessing要调用的cython的方法中包含了多线程,比如openmp C code,必须手动设定spawn方式产生多进程. 更多的细节 ...