C语言中十六进制转十进制两种实现方法
C语言 · 十六进制转十进制
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
思路:感觉自己的下面两个方法都对,但是···不说了【狡诈】。。。
方案一:
#include<stdio.h> #include<math.h> #include<string.h> int main(){ char s[50]; scanf("%s",s); int t=strlen(s); long sum=0; for(int i=0;i<t;i++){ if(s[i]>='A' && s[i]<='Z') s[i]=int(s[i]-'A')+10+'0'; sum+=((s[i]-'0')*(pow(16,t-1-i))); } printf("%ld\n",sum); }
方案二:
#include<stdio.h> int main(){ char s[50]; scanf("%s",s); int t; long sum=0; for(int i=0;s[i];i++){ if(s[i]<='9') t=s[i]-'0'; else t=s[i]-'A'+10; sum=sum*16+t; } printf("%ld\n",sum); return 0; }
感谢阅读,希望能帮助到大家,谢谢大家,对本站的支持!
相关推荐
-
C语言基础 原码、反码、补码和移码详解
原码.反码.补码.移码的作用? 在计算机内,机器数有无符号和带符号数之分.无符号数表示正数,在机器数中没有符号位.位于无符号数,若约定小数点的位置在机器数的最低位之后,则是纯整数:若约定小数点的位置在机器数的最高位之前,则是纯小数.对于带符号数,机器数的最高位是表示正.负的符号位,其余位则表示数值.若约定小数点的位置在机器数的最低数值位之后,则是纯整数:若约定小数点的位置在机器数的最高数值位之前(符号位之后),则是纯小数. 为了便于运算,带符号位的机器数可采用原码.反码和补码等不同的编码方法,
-
linux C语言开发管道通信实例详解
linux C语言开发管道通信 Linux系统本身为进程间通信提供了很多的方式,比如说管道.共享内存.socket通信等.管道的使用十分简单,在创建了匿名管道之后,我们只需要从一个管道发送数据,再从另外一个管道接受数据即可. #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <string.h> int pipe_default[2]; int main() { pid_t
-
C语言实现txt数据读入内存/CPU缓存实例详解
摘要 C实现将txt数据读入内存/CPU缓存的函数,不多说,实现如下. 1. 实现代码 #include "stdafx.h" #include <stdio.h> #include <stdlib.h> int filelength(FILE *fp); char *readfile(char *path); int main(void){ char *string; string=readfile("C:/Users/Joe WANG/Deskto
-
Species Tree 利用HashTable实现实例代码
Species Tree 利用HashTable实现 题目再现 题目内容: 给定一个物种演化图, 关系的表示方式如下: x y : 表示x为y的先祖. 一个物种只会有一个先祖, 一个先祖可以有很多个演化出来的物种, 请你找出每个问题询问物种的祖父物种(先祖的先祖), 每个物种会使用一个不重复的编号来表示, 如果该物种没有祖父物种的话或是不存在, 那么请将他的祖父物种当是0.(凭空而生) 保证所有物种间一定有所关连, 且不会有重复演化的现象发生, 即演化图只会是一棵树. 输入格式: 只有一组测资.
-
详解C语言中的字符串拼接(堆与栈)
首先来看一个demo: int do_sth(int type) { char *errstr; switch(type) { case 1: errstr = "Error";break case 2: errstr = "Warn";break case 3: errstr = "Info";break case 4: errstr = "Debug";break default: return 0; } if (...)
-
C语言行优先和列优先的问题深入分析
C语言行优先和列优先的问题深入分析 摘要 本文主要探讨的是"行优先"原则和"列优先"原则的问题. 1. 背景 首先了解"行优先"和"列优先"的知识,这两种方式在数学上的直观描述如下,给定如下矩阵: 根据行优先的原则,其排序方式为 根据列优先的原则,其排序方式为 2. 计算机领域的应用 行列优先原则在计算机领域的应用主要如下.行优先或者列优先没有好坏,但其直接涉及到对内存中数据的最佳存储访问方式.因为在内存使用上,程序访问的内存
-
C语言 坐标移动详解及实例代码
题目描述 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动.从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面. 输入: 合法坐标为A(或者D或者W或者S) + 数字(两位以内) 坐标之间以;分隔. 非法坐标点需要进行丢弃.如AA10; A1A; $%$; YAD; 等. 下面是一个简单的例子 如: A10;S20;W10;D30;X;A1A;B10A11;;A10; 处理过程: 起点(0,0) + A10 = (
-
C语言 MD5的源码实例详解
C语言 MD5源码 md5c.h: /* POINTER defines a generic pointer type */ typedef unsigned char * POINTER; /* UINT2 defines a two byte word */ //typedef unsigned short int UINT2; /* UINT4 defines a four byte word */ typedef unsigned long int UINT4; /* MD5 conte
-
C语言中十六进制转十进制两种实现方法
C语言 · 十六进制转十进制 问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. 注:十六进制数中的10~15分别用大写的英文字母A.B.C.D.E.F表示. 样例输入 FFFF 样例输出 65535 思路:感觉自己的下面两个方法都对,但是···不说了[狡诈]... 方案一: #include<stdio.h> #include<math.h> #include<string.h> int main(){ char s[50]; s
-
C语言中函数指针的三种使用方法总结
C语言中函数指针的三种使用方法总结 在这里分享一下自己的心得,希望和大家一起分享技术,如果有什么不足,还请大家指正.写出这篇目的,就是希望大家一起成长,我也相信技术之间没有高低,只有互补,只有分享,才能使彼此更加成长. 定义方式:int (*p)(int x, int y); 实现代码: #include <stdio.h> int sum(int x, int y){ return x + y; } int reduce(int x, int y){ return x - y; } int
-
java 中ArrayList迭代的两种实现方法
java 中ArrayList迭代的两种实现方法 Iterator与for语句的结合来实现,代码很简单,大家参考下. 实现代码: package cn.us; import java.util.ArrayList; import java.util.Iterator; //ArrayList迭代的两种方法 //Iterator与for语句的结合 public class Test1 { public static void main(String[] args) { ArrayList arra
-
javascript事件函数中获得事件源的两种不错方法
在javascript的事件响应中,许多情况我们需要获得事件源对象来对其属性进行更改,比如更改img的src属性.在事件响应函数中获得事件源的方法有如下两种: 第一种: 直接把作为一个参数传入.例如 复制代码 代码如下: <div id="myid" onclick="show(this);">text</div> <script type="text/javascript"> function show(ob
-
前端开发过程中浏览器版本的两种判定方法
在网上查找浏览器及版本判定方法有好多,此处小弟总结一二,以节省大家时间. 1.jquery的方法: 通过正则表达式可判定常用浏览器及其版本. 复制代码 代码如下: <span style="font-size:12px">function allinfo(){ var ua = navigator.userAgent; ua = ua.toLowerCase(); var match = /(webkit)[ \/]([\w.]+)/.exec(ua) || /(opera
-
C语言项目爬楼梯的两种实现方法参考
[项目-爬楼梯] 楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编一程序计算共有多少种不同的走法? [参考解答(递归法)] 基础:楼梯有一个台阶,只有一种走法(一步登上去):两个台阶,有2种走法(一步上去,或分两次上去): 递推:有n个台阶时,设有count(n)种走法,最后一步走1个台阶,有count(n-1)种走法:最后一步走2个台阶,有count(n-2)种走法.于是count(n)=count(n-1)+count(n-2). 可见,此问题的数学模型竟然是斐波那契数. #incl
-
Perl从文件中读取字符串的两种实现方法
1. 一次性将文件中的所有内容读入一个数组中(该方法适合小文件): 复制代码 代码如下: open(FILE,"filename")||die"can not open the file: $!";@filelist=<FILE>; foreach $eachline (@filelist) { chomp $eachline;}close FILE;@filelist=<FILE>; 当文件很大时,可能会出现"out
-
c语言中十六进制转二进制显示的实现方法
复制代码 代码如下: //====================================== //输出格式: hex2bin 5e. //得到: 0101 1110 //====================================== #include <stdio.h>#include <limits.h> char *bitstr(char *, void const *, size_t); int main(int argc, char **argv){
-
Java 中二进制转换成十六进制的两种实现方法
Java 中二进制转换成十六进制的两种实现方法 每个字节转成16进制,方法1 /** * 每个字节转成16进制,方法1 * * @param result */ private static String toHex(byte[] result) { StringBuffer sb = new StringBuffer(result.length * 2); for (int i = 0; i < result.length; i++) { sb.append(Character.forDigi
-
C语言中栈的两种实现方法
栈的两种实现方式 通常情况下,栈的实现方式有两种,一种方法是使用指针,而另一种方法则是使用数组.但是在调用程序时,我们没有必要知道具体使用了哪种方法. 一.顺序栈 #include<stdio.h> #include<stdlib.h> #define maxsize 64 //定义栈 typedef struct { int data[maxsize]; int top; }sqstack,*sqslink; //设置栈空 void Clearstack(sqslink s) {
随机推荐
- AJAX实现瀑布流布局
- vbs/js脚本编程教学(1)
- 巧解 JavaScript 中的嵌套替换(强大正则)
- 利用javaScript实现点击输入框弹出窗体选择信息
- chat.asp聊天程序的编写方法
- 3款实用的在线JS代码工具(国外)
- 响应鼠标变换表格背景或者颜色的代码
- 相对路径转化成绝对路径
- c# rsa注册实现加密文字
- jQuery的强大选择器小结
- NET LOCALGROUP命令详解(将用户添加到管理员组等)
- 通过 Redis 实现 RPC 远程方法调用(支持多种编程语言)
- MySQL安装后不能用是什么情况该如何解决
- jquery+CSS3实现淘宝移动网页菜单效果
- 了解在Flash中的编程工作第1/4页
- Python与Java间Socket通信实例代码
- 贫血症饮食疗法10招(女生必讀)
- 原生JS实现多个小球碰撞反弹效果示例
- vc++ 监控指定路径下文件变化实现代码
- c++中创建.in文件的方法步骤