c语言转16进制函数 c语言转化16进制

C语言调用函数编写把十进制整数n转换成十六进制怎么编程?

思路:十进制整数转换为十六进制整数采用"除16取余,逆序排列"法。

10年积累的网站制作、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站策划后付款的网站建设流程,更有广信免费网站建设让你可以放心的选择与我们合作。

具体做法是:用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(num0) 

a[i++]=num%16; 

num=num/16; 

printf("转化为十六进制的数为:"); 

for(i=i-1;i=0;i--)//倒序输出 

m=a[i];

printf("%c",hex[m]); 

printf("\n"); 

}

/*

运行结果:

17

转化为十六进制的数为:11

*/

给一个C语言字符串转16进制数的函数

首先对于一个整数,无论是十进制还是十六进制,它的值是一定的。

所以,转换16进制和10进制原理是一样的,先求出转换后的值,然后再以十六进制的形式输出就行了。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

你不会是直接从网页里面复制就粘贴到编辑器里面吧?

那样不行的,你自己重新输入一下。或者先拷贝到文本文档里面,再从文本文档里面复制。从网页里面直接复制有特殊字符的。

还有,程序函数不能在主函数里面定义的。

#include stdio.h

int convert(char * str);

void main()

{

char str[20];

int result;

scanf("%s",str); //自己输入一个十六进制的串

result = convert(str);

printf("%0x",result);

}

int convert(char * str)

{

int i,sum = 0;

for(i = 0;str[i] != '\0';i++)

{

if(str[i]='0' str[i]='9')

sum += sum*16 + str[i]-'0';

else if(str[i]='f' str[i]='a')

sum += sum*16 + str[i]-'a'+1;

else if(str[i]='F' str[i]='A')

sum += sum*16 + str[i]-'A'+1;

}

return sum;

}

用C语言如何把十进制转换为十六进制,要求程序中运用函数

**

程序功能:求二进制,十进制,八进制

创建人:蒲宇林

创建日期:2007年8月13日

**/

#include

void

two();

void

eight();

void

sixteen();

/**主函数**/

void

main()

{

int

select;

do

{

printf("0

-

退出,1

-

十进制转二进制,2

-

十进制转八进制,3

-

十进制转十六进制");

scanf("%d",select);

switch(select)

{

case

1

:

two();

break;

//十进制转二进制

case

2

:

eight();

break;

//十进制转八进制

case

3

:

sixteen();

break;

//十进制转十六进制

default

:

printf("您的输入有误,请重新输入!");

break;

}

if(select

==

0)

{

break;

}

}while(1);

}

void

two()

{

int

num,

i;

int

arr[20];

printf("\n请输入一个十进制数:");

scanf("%d",num);

for(

i

=

;

1

;

i++)

//转换为二进制并存入数组

{

arr[i]

=

num

%

2;

num

=

num

/

2;

if(num

==

0)

{

break;

}

}

printf("转换为二进制:");

//打印

for(;

i

=

;

i--

)

{

printf("%d",arr[i]);

}

printf("\n");

}

void

eight()

{

int

num,

i;

int

arr[20];

printf("\n请输入一个十进制数:");

scanf("%d",num);

for(

i

=

;

1

;

i++)

//转换为八进制并存入数组

{

arr[i]

=

num

%

8;

num

=

num

/

8;

if(num

==

0)

{

break;

}

}

printf("转换为八进制:");

//打印

for(;

i

=

;

i--

)

{

printf("%d",arr[i]);

}

printf("\n");

}

void

sixteen()

{

int

num,

i;

int

arr[20];

printf("\n请输入一个十进制数:");

scanf("%d",num);

for(

i

=

;

1

;

i++)

//转换为二进制并存入数组

{

arr[i]

=

num

%

16;

num

=

num

/

16;

if(num

==

0)

{

break;

}

}

printf("转换为十六进制:");

//打印

for(;

i

=

;

i--

)

{

switch(arr[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

:

printf("%d",arr[i]);

}

}

printf("\n");

}

如何给一个C语言字符串转16进制数的函数?

多麻烦啊!

看好了:

#includestdio.h

int a;

char *str="1Af";

int main()

{

sscanf(str,"%x",a);//%x为读入16进制数,大小写均可。sscanf是从c字符串中读入变量。

printf("%i",a);

return 0;

}

在C语言中如何将10进制转换成16进制?

根据10进制转换为16进制的规则,编写C语言程序将10进制数转换为16进制数。

具体实现方法可参考如下程序:

#includestdio.h

void main()

{

int i, x; // x表示欲转换的10进制数

int data[10], index=0;  // data数组存放转换后的16进制数,index表示下标

scanf("%d", x);  // 接受欲转换的10进制数

for(i=0; i10; i++)  // 对数组data进行初始赋值操作

data[i] = 0;

printf("%d对应的16进制为:", x);

// 反复相除取余,并将余数存放在data数组中

while(x0)

{

data[index] = x%16;

x = x/16;

index++;

}

// 逆序输出data数组中的元素,即为10进制数对应的16进制数

for(i=index-1; i=0; i--)

printf("%d", data[i]);

printf("\n");

}

c语言十进制转化为十六进制

十进制转化为十六进制代码:

#include "stdio.h" int main()

{

int num=0;

int a[100];

int i=0;

int m=0;

int yushu;

char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

printf("请输入一个十进制数:");

scanf("%d",num); while(num0) { yushu=num%16;

a[i++]=yushu;

num=num/16;

} printf("转化为十六进制的数为:0x"); for(i=i-1;i=0;i--)//倒序输出 {m=a[i];

printf("%c",hex[m]); } printf("\n");

}

程序运行结果:

扩展资料:

进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。位权是指,进位制中每一固定位置对应的单位值。

举例:二进制数转换为十进制数

二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……

所以,设有一个二进制数:0110 0100,转换为10进制为:

下面是竖式:

0110 0100 换算成十进制

第0位 0 * 20 = 0

第1位 0 * 21 = 0

第2位 1 * 22 = 4

第3位 0 * 23 = 0

第4位 0 * 24 = 0

第5位 1 * 25 = 32

第6位 1 * 26 = 64

第7位 0 * 27 = 0

公式:第N位2(N)

---------------------------

100

用横式计算为:

0 * 20 + 0 * 21 + 1 * 22 + 0 * 23 + 0 * 24 + 1 * 25 + 1* 26 + 0 * 27 = 100

0乘以多少都是0,所以我们也可以直接跳过值为0的位:

1 * 22 + 1 * 25 +1*26 = 100

参考资料:

百度百科-进制转换


分享名称:c语言转16进制函数 c语言转化16进制
当前地址:http://ybzwz.com/article/hhjccd.html