C语言:编程实现将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符形式输出。

作者&投稿:能须 (若有异议请与网页底部的电邮联系)
C语言调用函数编写把十进制整数n转换成十六进制怎么编程?~

思路:十进制整数转换为十六进制整数采用"除16取余,逆序排列"法。具体做法是:用16整除十进制整数,可以得到一个商和余数;再用16去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为十六进制数的低位有效位,后得到的余数作为十六进制数的高位有效位,依次排列起来。
参考代码:
#include "stdio.h" int main() { int num,a[100],i=0,m=0; char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};scanf("%d",&num); while(num>0) { a[i++]=num%16; num=num/16; } printf("转化为十六进制的数为:"); for(i=i-1;i>=0;i--)//倒序输出 { m=a[i];printf("%c",hex[m]); } printf("
"); }/*运行结果:17转化为十六进制的数为:11*/

#include
void convert(unsigned int in, unsigned int type, char *out) {
int i=0, n;
char temp;
while (in > 0) {
n = in % type;
if(n<10){
out[i] = n + '0';
}
else {
out[i] = n-10 + 'A';
}
i++;
in = in / type;
}
out[i] = 0;
if (i == 0) {
out[0] = '0';
out[1] = 0;
}
else {
for (n = 0; n < i/2; n++) {
temp = out[n];
out[n]=out[i - n - 1];
out[i - n - 1] = temp;
}
}
}
int main()
{
unsigned int d;
char t[33];
scanf_s("%u", &d);
convert(d, 2, t);
printf("二进制:%s
", t);
convert(d, 8, t);
printf("八进制:%s
", t);
convert(d, 16, t);
printf("十六进制:%s
", t);
return 0;
}

问题不少,首先,10进制不能直接转化为16进制,应该先转为2进制然后再转16进制,其次,char *str 用法错误,只分配了一个字符指针,你却当字符数组使用了,把这两处改了去。

#include<stdio.h>

void DtoH(int x)
{
char digitstr[]="0123456789ABCDEF";
int conv[32],subs,i=0;
do{
conv[i]=x%16;
x /= 16;
i++;
}while(x!=0);
for(--i;i>=0;--i)
{
subs=conv[i];
printf("%c",digitstr[subs]);
}
}

void main()
{
int n;
while(scanf("%d",&n))
{
DtoH(n);
printf("\n");
}
}

C语言是不是,是不是一种编辑网络程序语言,这样的代码,你可以向北大青鸟的老师和学员问问,
广州北大青鸟是一个很专业的IT培训机构,我也有这样的想法去北大青鸟学校,我现在在广州,我想去北大青鸟广州俊星越秀校区!


求汇编程序:编程实现将键盘输入的小写字母转换为大写字母显示出来?_百度...
1、打开软件Visual C++6.0,新建一个C源程序,书写C语言程序。2、首先定义两个字符型变量,代码:char c1,c2;从键盘中输入一个大写字母,代码:c1=getchar();。3、大写字母与小写字母的ASCII值相差32。代码:c2=c1+32;。将大写字母转化成小写字母。4、输出小写字母。使用putchar()函数,可以输出...

C语言:编程实现将输入的十进制整数n通过函数DtoH转换为十六进制数,并将...
问题不少,首先,10进制不能直接转化为16进制,应该先转为2进制然后再转16进制,其次,char *str 用法错误,只分配了一个字符指针,你却当字符数组使用了,把这两处改了去。

C语言编程:编程实现将一个数组逆序输出
int main(){ int a[5]={1,2,3,4,5};int i;for(i=4;i>=0;i--){ printf("%d",a);} printf("\\n");return 0;}

C语言从键盘任意输入10个整数,编程实现将其中最大数与输出排在第一的...
void main(){ int a[10];int i,j,max,min,temp,m,n;printf("请输入十个整数\\n");for(i=0;i<10;i++){ scanf("%d",&a[i]);} for(i=0;i<10;i++){ printf("%d ",a[i]); \/\/要加空格 } printf("\\n"); \/\/换行 max=a[0];min=a[0];m=0; n=0; \/\/...

c语言编程 将输入的2进制字符串转换为10进制数输出
设置一个循环遍历字符串,设置一个初值为0的变量sum记录十进制数,从下标为0开始,作sum*2+该元素-'0'操作,遍历完成后sum即为所求之结果。代码如下:\/\/#include "stdafx.h"\/\/If the vc++6.0, with this line.#include "stdio.h"int main(void){ char a[]="1101001011010111000101"; ...

求圆的周长编程实现;+要求输入大写字母,输出小写字母。
以下是使用 C++ 编程语言实现求圆的周长,并将输入大写字母转换为小写字母的代码示例:```c++ include <iostream> using namespace std;const double PI = 3.1415926; \/\/ 定义 π 的值 \/\/ 自定义函数,用于计算圆的周长 double calculateCirclePerimeter(double radius) { return 2 * PI * radius...

汇编语言 编程实现由键盘输入任意一个字符,将该字符的ASCII码值显示在...
DATA1 DB 'PLEASE PUT A CHAR:$'DATA2 DB 0AH,0DH,'THE ASCII OF THE :$'SD DB 'A'DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,OFFSET DATA1 ;显示提示信息 MOV AH,09H INT 21H MOV AH,01H INT 21H MOV SI,OFFSET SD MOV [SI],...

c语言编程由键盘输入10个数,编程实现将第一个数移到最后一位,其它数前...
class Program { public static void Main(){ int[] arr = new int[10];for(int i=0;i<10;i++) arr[i]=int.Parse(Console.ReadLine());int last=arr[10];for(int i=arr.Length-1;i>=1;i++)arr[i]=arr[i-1];arr[0]=last;foreach(int i in arr) Console.WriteLine(i);}...

c语言问题 编程要求将输入的四个数字按从小到大的顺序输出,,,要求使...
include<stdio.h>#define N 4#define swap(integer1,integer2,tmp) {tmp=integer2;integer2=integer1;integer1=tmp;}void main(void){int a[N];int tmp,i,j;printf("Input FOUR number: ");for(i=0;i<N;i++)scanf("%d",a+i);for(i=0;i<N-1;i++)for(j=i;j<N;j++)if(...

C语言编程:编程实现将一个数组逆序输出
1、首先打开软件VC++6.0软件,准备一个空白的C语言文件,引入头文件并写好主函数:2、然后输入代码,首先定义数组,接着用一个for循环接受用户输入的数组元素并将其打印到屏幕上,并保存到前面的数组中,然后用第二个for循环逆序排序,方法就是前面的元素和后面的元素比较大小,前面比后面小就交换顺序...

汶上县13658702923: 求高手写C语言程序代码:"从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数." -
呈美利多: #includevoid ex10to2(); void ex10to8(); void ex10to16(); void main() { int select; do { printf("\n 0、退出 1、十进制~二进制 2、十进制~八进制 3、十进制~十六进制\n"); printf("请选择功能:"); scanf("%d",&select); if(select == 0) break; ...

汶上县13658702923: C语言:编写一个函数,其功能是将一个十进制正整数转换成任意进制整数,并输出转换结果? -
呈美利多: #include "stdio.h" #include "stdlib.h" main() { int n,x=0,a[100]; printf("请输入转换的数和进制:\n"); scanf("%d",&n); while(n){ a[x++]=n%2; n/=2; } --x; while(x>=0) printf("%d",a[x--]); printf("\n"); system("pause"); } 再送你一个进...

汶上县13658702923: C语言编程实现:从键盘输入一个十进制整数,输出相应的二进制、十六进制. -
呈美利多: #include<stdio.h> void showbit(int n) {if(n>1){ showbit(n/2); printf(" "); } printf("%d",n%2); } void showoct(int n) {if(n>7){ showoct(n/8); printf(" "); } printf("%d",n%8); } void showhex(int n) { if(n>15){ showhex(n/16); printf(" "); } printf("%d...

汶上县13658702923: 用C语言编程将十进制转换为二进制和十六进制 -
呈美利多: 十进制转二进制:----------------------------------------------- #include<stdio.h> #include<conio.h> void main() { int d,n,i,j,a[50],Outformat=1; printf("输入一个数:"); scanf("%d",&n);if(n==0) printf("\n十进制 0 转换二进制数:0"); else { printf("\...

汶上县13658702923: C语言,编一程序用递归函数,把输入的一个十进制整数转换成二进制数输出 -
呈美利多: #include<stdio.h> void main() { int i,a; printf("输入十进制整数,看其二进制形式:\n"); scanf("%d",&a); for(i=31;i>=0;i--) printf("%2d",a>>i&1); printf("\n"); }

汶上县13658702923: 各位c语言高手帮帮忙用c语言编写程序,题目是:将用户输入的十进制?
呈美利多: 简单点的可以这样写: #include main() { int i; printf("请输入十进制数:"); scanf("%d",&i); printf("它的十六进制数为%X(大写)或%x(小写)\n",i,i); }

汶上县13658702923: 用C语言编程"输入一个十进制整数,打印输出对应的八进制数和十六进制数." -
呈美利多: #include "Stdio.h" #include "Conio.h" main() { int a;scanf("%d",&a);printf("%x,%o",a,a);getch();} %x 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数

汶上县13658702923: C语言编程从键盘上输入一个十进制数C语言编程:从键盘上输入一个十
呈美利多: #include#define LENGTH 100#define NUMBER 8int scan() { int data; printf("Input ... { char array[LENGTH]; int i=0; printf("%d 转换成八进制后为:", data); while(data){ ...

汶上县13658702923: c语言编程 将10进制整数转化成任意进制整数 -
呈美利多: 将任意进制的整数化成十进制整数 一、目的和要求 1.应用循环进行幂运算. 2.掌握其它进制的数化成十进制数的计算方法. 3.转换的结果正确. 二、实验内容 1.键盘上任意输入一个任意进制的整数及它的进制. 2.根据其它进制的数化成十进制数的计算方法,编写程序将其转换成十进 制的数. 三、算法 设输入的数为:a0a1a2

汶上县13658702923: c语言设计,输入一个十进制数,将其转换成N进制数(0<N<=16) -
呈美利多: 最简单的,不涉及算法的作法就是用printf的输出格式 %x 输出16进制%x 输出小写的a、b、c、d、e、f %X输出大写的A、B、C、D、E、F#include"stdio.h" int main() { int a; printf("请输入一个10进制整数:" ); scanf( "%d", &a); printf("该数转换为16进制数为: %X\n",a); return 0; }以下是运行结果:

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网