学习C语言程序开发范例
实例001 十进制转换为十六进制
主要利用输入、输出控制符。C语言中规定,“%x”和“%d”分别代表十六进制和十进制数的输入和输出格式控制符。
*注意:在使用printf 函数及scanf()函数时要注意格式,尤其是scanf()函数,scanf(“%d”,&i);中的&符号不要忘记写。
#include <stdio.h> /*引用头文件stdio.h*/
main() /*main()主函数*/
{
int i; /*定义一个变量i*/
printf("pleasse input decimalism number:\n"); /*双引号内的普通字符原样输出并换行*/
scanf("%d", &i); /*scanf()函数以十进制形式获得i的值*/
printf("the hex number is %x", i); /*将i的值以十六进制形式输出*/
}
十六进制中的字符如下:
hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
- 根据本实例,可以举一反三,实现十进制转二进制或八进制;二进制、十六进制或八进制转十进制。
实例002 十进制转换为二进制
(1)要用数组来存储每次对2取余的结果,所以在数据类型定义的时候要定义数组,并将其全部数据元素赋初值为0。
(2)两处用到for循环,第一次for循环为0-14(本例中只考虑基本整型的正数部分的转换,所以最高位始终为0),第二次for循环为15-0,这里要注意不能改成0-15,因为在每次对2取余的结果存入数组时是从a[0]开始存储的,所以输出的时候就要从a[15]开始输出,这也符合我们平时计算的过程。
(3)%、/的应用,%:模运算符,或称为余运算符,%两侧均应为整型数据。/:除法运算符,两个整数相除的结果为整数,运算的两个数中有一个数为实数,则结果是double型的。
#include <stdio.h>
main()
{
int i, j, n, m; /*定义变量i,j,n,m*/
int a[16] =
{
0
}; /*定义数组a,元素初始值为0*/
/*clrscr();*/
printf("please input the decimalism number(0-32767):\n"); /*输出双引号内普通字符*/
scanf("%d", &n); /*输入n的值*/
for (m = 0; m < 15; m++) /*for循环从0-14,最高位为符号位,本例始终为0*/
{
i = n % 2; /*取2的余数*/
j = n / 2; /*取被2整除的结果*/
n = j; /*将每次的余数存入数组a中*/
a[m] = i;
}
for (m = 15; m >= 0; m--)
{
printf("%d", a[m]); /*for循环,将数组中的16个元素从后往前输出*/
if (m % 4 == 0)
printf(" ");
}
}
- 根据本实例,举一反三,可以实现十进制(基本整型中的负数部分)转二进