第二次博客作业

一.程序运行

二.函数介绍

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
// 10 zhuang 2
void Binary_Exchange(int a)
{
    int arr1[50] = { 0 };
    int tmp = 0;
    unsigned int i;
    printf("The Binary number is :");
    for (i = 0x80000000; i; i >>= 1)
    {
        tmp = ((a & i) == i);
        printf("%d", tmp);
    }
}
// 10 zhuang 8
void Octal_Exchange(int m)
{
    int temp = 0;
    if (m == 0)
        return;
    temp = m % 8;
    Octal_Exchange(m /= 8);
    printf("%d", temp);
}
// 10 zhuang 16
int Hexa_Exchange(int a)
{
    int i = 0;
    int count = 0, temp = 0;
    char arr[20] = { 0 };
    temp = a;
    while (temp)
    {
        arr[i] = temp % 16;
        temp /= 16;
        count++;
    }
    for (i = 0; i < count; i++)
    {
        if (arr[i] > 9)
        {
            arr[i] += 7;
        }
        arr[i] += '0';
    }
    printf("The Hexa   number is :%s\n", arr);
    return a;
}

三.main函数

int main()
{
    int num = 0;
    char arr[] = { 0 };
    int i = 0, size = 0;
    int n = 0, temp = 0;
    printf("请输入要转化的数:");
    //scanf("%s", &num);
    gets(arr);
    size = strlen(arr);
    printf("请输入该数的进制(2、8、16):");
    scanf("%d", &n);
    for (i = 0; i < size; i++)
    {
        if (arr[i] >= '0' && arr[i] <= '9')
        {
            temp = arr[i] - '0'; 
        }
        else if (arr[i] >= 'A' && arr[i] <= 'F')
        {
            temp = arr[i] - 'A' + 10; 
        }
        num = num * n + temp;
    }
    Binary_Exchange(num);
    printf("\n");

    printf("The Octal  number is :");
    Octal_Exchange(num);

    printf("\nThe Dec    number is :%d", num);
    printf("\n");

    Hexa_Exchange(num);
    printf("\n");

    system("pause");
    return 0;
}

四.思维导图

五.代码互评

#include "Header.h"
#include "tr2.c"
#include "tr8.c"
#include "tr10.c"
#include "tr16.c"

这同学调用多个头文件使得代码简洁明了,我没有想到.

六.总结

1.加深了对函数的理解

2.这次代码写的很慢,问了很多人,给了我很多帮助,一路上重复差错

posted @ 2019-11-10 22:27  皮皮皮(童浚)  阅读(149)  评论(0编辑  收藏  举报