c语言100的十进制字符为啥是d

Python019

c语言100的十进制字符为啥是d,第1张

的意义

39 阅读 0 评论 26 点赞

我是悠悠之家的博主 现代的小鸭子,最近开发中收集的这篇文章主要介绍C语言中%d,%s,%x,%f,%.100的意义,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C语言的字符格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。

格式字符有d,o,x,u,c,s,f,e,g等, 如:

%d整型输出,%ld长整型输出,

%o以八进制数形式输出整数,

%x以十六进制数形式输出整数,或输出字符串的地址。

%u以十进制数输出unsigned型数据(无符号数)。注意:%d与%u有无符号的数值范围,也就是极限的值,不然数值打印出来会有误。

%c用来输出一个字符,

%s用来输出一个字符串,

%f用来输出实数,以小数形式输出,默认情况下保留小数点6位。

%.100f用来输出实数,保留小数点100位。

%e以指数形式输出实数,

%g根据大小自动选f格式或e格式,且不输出无意义的零。

c语言中没有表示二进制的字符,但是你可以根据十进制、八进制或者十六进制转换一下。

可以利用短除法,将十进制转变成二进制,我们一般的思路是这样的,下面给出一个例子:

把20转换成二进制:

20/2=10........余数为0   最低位

10/2=5..........余数为0

5/2=2............余数为1

2/2=1............余数为0

1/2=0............余数为1      最高位

则20换成二进制后是10100

利用短除法可以轻松地将十进制转换成二进制,在编程中是这样用的,以下给出代码:

扩展资料:

在做数据读写传输时最常用也最直观的莫过于十进制数,但是在不同应用场合、存储的方便在C语言开发时候也常采用二进制、八进制和十六进制存储数据。

进制是一种计数机制,对于任何一种进制,如:xx进制,就表示某一位置上的数运算时逢 xx 进一位。例如:时间60′60′,分钟就会加 1,这就是六十进制。计算机中常用的进制有二进制、八进制、十进制、十六进制。

下面给出一个使用C语言编程实现任意进制数(2-16进制)转换为其他任意进制数(2-16进制)的小程序代码:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

int TenNum(char a[],int B)              //将输入的数字转换成10进制数

void Numchange(int m, int B)            //将转换好了的10进制数转换为所需进制数

int TenNum(char a[], int B)

{

int len, i, num

int sum = 0   

len = strlen(a)                    //求得字符串长度

for (i = 0i <leni++)

{

if (a[i] >= '0' &&a[i] <= '9')

num = a[i] - '0'

else if (a[i] >= 'A' &&a[i] <= 'F')

num = a[i] - 'A' + 10

sum = sum * B + num

}

return sum

}

void Numchange(int m, int B)

{

int n

if (m)

{

Numchange(m / B, B)

n = m % B

if (n <10)

printf("%d", n)           //小于10直接输出

else

printf("%c", n + 55)      //大于10转换成字符输出

}

}

int main()

{

int B, b

char a[20]     

printf("请输入待转换数的进制(2-16):")

do {

scanf_s("%d", &B)       

} while (B <2 &&B >16)

printf("请输入待转换数:")

getchar()       

gets_s(a)                        //将输入的n进制数存放在数组a中

int m = TenNum(a, B)             //将输入的数字转换成十进制数

printf("请输入需要转成几进制数(2-16):")

do {

scanf_s("%d", &b)

} while (B <2 &&B >16)

printf("%d进制数%s转换为%d进制数的结果为:",B,a,b)

Numchange(m, b)                 //将十进制数转换为所需进制数

printf("\n")

system("pause")

return 0

}