-
蓝桥杯--C语言十进制转化为十六进制
2020-03-08 16:37:41C语言十进制转化为十六进制 问题描述: 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,...
C语言十进制转化为十六进制
问题描述:
十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。
给出一个非负整数,将它表示成十六进制的形式。输入格式
输入包含一个非负整数a,表示要转换的数。
输出格式
输出这个整数的16进制表示
样例输入
30
样例输出
1E
#include<stdio.h> #define N 100000 int main(){ int a,k[N],i,count=0; char c[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; scanf("%d",&a); if(a==0){ printf("%d",a); } while(a){ k[count++]=a%16; a/=16; } for(i=count;i>0;i--){ printf("%c",c[k[i-1]]); } return 0; }
-
十进制转化为十六进制,C语言
2019-12-27 15:34:00问题描述:输入一个十进制整数(可能大于15),转化为十六进制输出 解决方法:除16取余数倒排,取余结果放入到str1,倒排结果放入到str2 编译环境:vc++6.0 代码: #include <stdio.h> /*输入一个十进制整数...问题描述:输入一个十进制整数(可能大于15),转化为十六进制输出
解决方法:除16取余数倒排,取余结果放入到str1,倒排结果放入到str2
编译环境:vc++6.0
代码:#include <stdio.h> /*输入一个十进制整数(可能大于15),转化为十六进制输出*/ /*十进制转十六进制,方法:除16取余数倒排 取余结果放入到str1,倒排结果放入到str2 */ char* convert(int x) { static char hexchars[] = "0123456789ABCDEF"; //十六进制对应的数组 static char str1[81], str2[81], * p = str1, * q = str2; static int n = 0; //计算字符长度,为倒排做准备 //str1 存储取余数组, str2倒排存储数组 while (x) //取余 { *p++ = hexchars[x % 16]; x /= 16; n++; } p--; //指针回退,因为多加了一步 while (n) { *q++ = *p--; n--; } return str2; } int main() { int x; printf("请输入一个十进制数:\n"); scanf("%d", &x); printf("对应的十六进制数是:%s\n", convert(x)); return 0; }
测试案例:
-
C语言十进制转化为十六进制程序设计
2011-07-27 15:33:41#include void main(){int n,i=0;int s[10];printf("please input a number :");scanf("%d",&n);while(n>0)//n=0表明n不能整除16,既小于16,表示已经到最高位{s[i] = n%1#include <stdio.h>
void main()
{
int n,i=0;
int s[10];
printf("please input a number :");
scanf("%d",&n);
while(n>0)//n=0表明n不能整除16,既小于16,表示已经到最高位
{
s[i] = n%16;//开始循环先求最低位
n/=16;
i++;
}
for(i-=1;i>=0;i--)//从最高位开始打印
{
if(s[i]<10)
{
printf("%d",s[i]);
}
else
{
switch(s[i])
{
case 10: printf("A");break;
case 11: printf("B");break;
case 12: printf("C");break;
case 13: printf("D");break;
case 14: printf("E");break;
case 15: printf("F");break;
default : break;
}
}
}
printf("\n");
getch();
}
-
C语言 十进制数转化为二进制 八进制 十六进制数
2018-04-24 22:28:18对于刚开始学习C语言的来说,我们知道%d可以表示十进制的数,%o可以表示八进制的数,%x用来表示十六进制的数,但却没有来表示二进制数的。 这就是相对应的八进制数和十六进制数#include <stdio.h> ...对于刚开始学习C语言的来说,我们知道%d可以表示十进制的数,%o可以表示八进制的数,%x用来表示十六进制的数,但却没有来表示二进制数的。
这就是相对应的八进制数和十六进制数
#include <stdio.h> int main() { int n; printf("请输入一个十进制的整数:\n"); scanf("%d",&n); printf("八进制数为:%o\n",n); printf("十六进制数为:%x\n",n); return 0; }
那么如何输入一个相对应的二进制数尼?我们知道,对于一个二进制数,只有0和1;一个十进制数转化为二进制数,就是不断模2,并且最后将模2的结果逆序输出。
下面的代码比较容易理解,但特别的繁琐。
#include <stdio.h> #define Maxsize 100 int main() { int n=0,count=0,j=0; int a[Maxsize],b[Maxsize]; printf("请输入一个十进制整数:\n"); scanf("%d",&n); if(n>=0){ while(n!=0){ a[count]=n%2; n=n/2; count++; } for(int i=count-1;i>=0;i--)//将数组逆序输出 printf("%d",a[i]); } else{ n=-n; while(n!=0){ a[count]=n%2; n=n/2; count++; } for(int i=count-1;i>=0;i--){//将逆序输出的结果保存在另一个数组中 b[j]=a[i]; j++; } for(int i=0;i<count;i++){ //取反码 if(b[i]==0) b[i]=1; else b[i]=0; } for(int i=count-1;i>=0;i--){ //将反码加1 if(b[i]==0){ b[i]=1; break; } else{ b[i]=0; } } for(int i=0;i<count;i++) printf("%d",b[i]); } printf("\n"); return 0; }
下面的代码比较简单,但不太容易理解。
#include <stdio.h> int main() { int n; printf("请输入一个十进制数:\n"); scanf("%d", &n); unsigned int i = 1u << 15; for ( ; i ; i >>= 1) { printf("%d",n&i?1:0); } printf("\n"); return 0; }
上述代码用的是移位,用这个方法,代码中的i必须用unsigned int 无符号整型来表示,初始化i=1,后面的u表示的就是unsigned,<<15表示向左移位15个bit(本代码输出的是十六位的二进制数,如果想输出32位的二进制数,只需将15变为31即可),将0000000000000001中的1向左移位15就得到了1000000000000000,接下来就是for循环,就是单纯的让1慢慢向后移一位,例如第二次循环就变为了0100000000000000,同理下去。&表示的是按位与运算符。
举一个简单的例子,八位的二进制数,假设i循环为了00100000,而算求的二进制数为xx1xxxxx,我们只看与i 中的1相对应位置的数字,假设为0,则最后结果二进制数的该位就是0,若为1,最后结果二进制数的该位就为1,不需要去考虑其他的位置。注意,该方法加入输入一个负数,前面某几位会是。
上述的代码都只适用于整数。
-
C语言 十六进制转化为十进制?
2016-05-23 12:04:19#include<stdio.h> long fun(char s) int main() { long m; char s[50]; scanf("%s",s); m=fun(s); printf("ld",m); return 0; } long fun(char s) { int i,t; long sum=0;... -
c语言:十六进制转化为十进制
2019-02-21 21:36:48十六进制是由数字1到9或者是字母a(A)到字母f(F),其中字母a代表数字10,字母f代表数字15 下面通过代码: #include <stdio.h> #include <string.h> #define N 100 int i; int main(){ int ... -
十六进制转化为十进制 c语言函数
2014-04-19 20:52:12int convert(int a,char *p)//a为字符串长度,p为需要转换字符串指针 { int i,j,sum; sum=0; for(i=0;i { if(*(p+i)='a') j=(int)(*(p+i))-87; else if(*(p+i)='A') j=(int... -
【c语言】(数组)将十进制数转化为十六进制数
2018-12-17 22:51:53输入一个十进制数,运用数组将其转化为十六进制数 思路分析: 十进制转十六进制的算法: 将一个整数转化为由一个个字符组成的十六进制数 将一整数输入函数,新建一个空数组来存十六进制的每一个字符 新建... -
C语言十六进制转化为十进制程序设计
2011-07-27 15:34:56#include void main(){int n=0,m=0;char s[6];char *p;p = s;printf("请输入十六进制数:");gets(p);puts(p);while(*p!='\0'){n = m + *p - '0';//注意:这里一定要减去'0 -
C语言实现十进制转十六进制
2008-12-16 12:09:39C语言编程实现十进制转化为十六进制,在VC6.0中可顺利实现 -
【C语言】十进制到十六进制的转化
2020-01-31 11:51:30十进制到十六进制的转化 相关知识: 十进制:%d 八进制:%o 十六进制:%x #include<stdio.h> int main() { int x ; scanf("%d",&x); printf("%x",x); //%x换成%o即转换为八进制 return 0; } ... -
十进制转换十六进制 、C语言
2019-10-25 11:18:41/*输入一个十进制整数(可能大于15),转化为十六进制输出*/ /*十进制转十六进制,方法:除16取余数倒排*/ char* convert(int x) { static char hexchars[] = "0123456789ABCDEF"; static char str1[81], str2[81... -
把一个十进制数转化为十六进制数【用c语言实现】
2016-05-24 15:58:41#include int main() { int m=256; int i,j; i=m>>4; //i=m/16; j=m&0xf; //j=m/16; m=i*16+j; printf("%#x",m); } -
c语言将十进制转化为二进制算法_为什么电脑采用二进制?十进制究竟代表人脑的进化还是退化?...
2020-11-13 11:37:24为什么人类的运算最终统一为十进制?具体的历史发展进程已经很难准确地进行考证,但大概率...计算机在计算的时候是这样操作的,人们输入一个十进制数据,计算机将十进制数据转化为二进制数据,再对这个二进制数据... -
C语言分别将一个十进制整数转化为所对应的二进制和十六进制
2019-10-07 22:03:021.将一个十进制整数转化为所对应的二进制整数 #include<stdio.h> #include<stdlib.h> void Digit(int n) { if (n ==0||n==1) { printf("%d",n); } else { Digit(n / 2); printf("%d",n % 2); }... -
c语言二进制转换十进制_如何在python中输入二进制、八进制、十进制、十六进制数据并转换...
2020-11-27 00:49:40##不甘平凡#最近在学习python,不过跟着课本的作业题目:分别就计算二进制110110011、八进制256和十六进制的数字a4b5,并转化为十进制求和。不过写过程中遇到了个问题:如何在python中输入二进制数字?在网上百度了... -
C语言——十进制转为二进制、八进制、十六进制的函数转换
2014-06-27 13:27:56C语言——十进制转为二进制、八进制、十六进制的函数转换 /*** * Copyright(C) 2011, ...* 功 能:输入一个十进制数,将其转化为二进制、八进制、十六进制 * * 作 者:zhanghbboy * 完成日期:11.07.27 -
十进制转化为二,八,十六进制用栈实现(c语言编)
2012-10-15 21:49:53{ /* 输入任意的十进制数转换成想换成的进制数*/ int m; Initstack(s); do { push(s, p%n); p = p / n; } while (p); while (s->base != s->top) { m = Pop(s); if (m... -
Java算法学习:java进制转换(十进制转八进制,十进制转二进制,十六进制转八进制)
2018-12-19 10:59:41java进制转换(十进制转八进制,十进制转二进制,十六进制转八进制) 这几天在复习C语言的数据结构栈和队列那一章的时候,看到利用栈的特性FILO实现的...十进制怎么转化为二进制呢? public void Dex2Bin(int n... -
C语言小程序—实现十进数转化为十六进制
2016-09-26 22:24:46将十进制数转化为十六进制数: #include char *int2hex(unsigned int num) { static char hex[11]; hex[0]=’0’; hex[1]=’x’; hex[10]=’\0’; unsigned int mask=0x0000000f; int i=0; for(i=9;i>... -
C语言的本质(2)——二进制、八进制、十六进制与十进制
2014-06-30 12:31:52二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由...19世纪爱尔兰逻辑学家乔治布尔对逻辑命题的思考过程转化为对符号 -
十六进制转十进制(C语言实现)
2018-01-29 14:40:17首先,了解如何将字符串转化为十进制数: 从数字组成的字符串转化为十进制数步骤如下: 1、挨个读取数组,从第0位开始 2、将字符转化为数字。比如从'1'转化为1。可以参考ASCII码表,字符'0'是48,所以只需要将字符... -
十六进制转化为ASCII码引起的的进制的故事
2017-11-21 17:48:00机器语言是用0和1来处理问题的,在C语言中通过设定不同的显示格式在屏幕上将显示不同的进制格式的数据,比如:十六进制,八进制,二进制,十进制等等,这些都是常用的一些进制. 回想起关于进制的故事还是很多的,曾经刚刚...