首页 > 其他分享 >将十进制数对应的二进制、八进制、十六进制数输出

将十进制数对应的二进制、八进制、十六进制数输出

时间:2024-07-30 12:24:49浏览次数:11  
标签:十六进制 arr ten int length printf 八进制 十进制

题目描述

输入一个十进制数,转换为对应的二进制、八进制、十六进制数输出

输入

输入一个十进制数

输出

输出该十进制数对应的二进制、八进制、十六进制数

输入输出样例

样例输入 #1

10

样例输出 #1

bin:1010

oct:12

hex:A

提示

使用输出格式控制符  bin oct hex

设计思路:将一个十进制整数转换为二进制、八进制和十六进制,并打印出结果。代码利用 scanf 函数读取用户输入的整数,并通过 tenToTwotenToEight 和 tenToSixteen 三个函数分别执行转换。tenToTwo 函数使用数组和 while 循环将整数转换为二进制,并按从高位到低位的顺序输出结果;tenToEight 函数类似,但进行的是八进制转换;tenToSixteen 函数则将整数转换为十六进制,处理时考虑了字符 ‘0’-‘9’ 和 ‘A’-‘F’ 的转换。

har arr[100];:使用字符数组存储十六进制字符(0-9 和 A-F)。int a = ten % 16;:取余数来获取当前位的十六进制值。if (a >= 10 && a <= 15):判断值是否在 A-F 的范围内,并进行相应的字符转换。printf("hex:");:打印十六进制的前缀。for (int i = length - 1; i >= 0; i--):从数组的最后一位到第一位输出十六进制表示。

代码:

#include <stdio.h>

void tenToTwo(int ten);    // 函数声明
void tenToEight(int ten);  // 函数声明
void tenToSixteen(int ten); // 函数声明

int main() {
    int ten;
    scanf("%d", &ten);  // 使用 &ten
    tenToTwo(ten);
    tenToEight(ten);
    tenToSixteen(ten);
    return 0;
}

// 十进制转换成二进制
void tenToTwo(int ten) {
    int arr[100], length = 0;
    
    if (ten == 0) {
        printf("bin:0\n");
        return;
    }
    
    while (ten) {
        arr[length++] = ten % 2;
        ten /= 2;
    }
    
    printf("bin:");
    for (int i = length - 1; i >= 0; i--) {
        printf("%d", arr[i]);
    }
    printf("\n");
}

// 十进制转换成八进制
void tenToEight(int ten) {
    int arr[100], length = 0;
    
    if (ten == 0) {
        printf("oct:0\n");
        return;
    }
    
    while (ten) {
        arr[length++] = ten % 8;
        ten /= 8;
    }
    
    printf("oct:");
    for (int i = length - 1; i >= 0; i--) {
        printf("%d", arr[i]);
    }
    printf("\n");
}

// 十进制转换成十六进制
void tenToSixteen(int ten) {
    char arr[100];
    int length = 0;
    
    if (ten == 0) {
        printf("hex:0\n");
        return;
    }
    
    while (ten) {
        int a = ten % 16;
        char c;
        if (a >= 10 && a <= 15) {
            c = a + 55; // A-F
        } else {
            c = a + 48; // 0-9
        }
        arr[length++] = c;
        ten /= 16;
    }
    
    printf("hex:");
    for (int i = length - 1; i >= 0; i--) {
        printf("%c", arr[i]);
    }
    printf("\n");
}

编译结果:

标签:十六进制,arr,ten,int,length,printf,八进制,十进制
From: https://blog.csdn.net/m0_73875968/article/details/140793509

相关文章

  • 编程: 十进制数转化为二进制数
    (1)通过合理的判断,符合正常思路importjava.util.Scanner;publicclasstest4{publicstaticvoidmain(String[]args){/*从键盘输入某个十进制整数数,转换成对应的二进制整数并输出。*/Scannersc=newScanner(Sys......
  • 使用十六进制值绘制颜色网格
    我有一个代表不同颜色的十六进制值列表。如何在颜色网格中表示这些十六进制值。也就是说,可视化每个十六进制值的颜色。谢谢。可以使用多种方法来使用十六进制值绘制颜色网格,以下列出了一些方法:1.使用HTML和CSS可以创建一个简单的HTML表格,并使用十......
  • 010 Editor for Mac(文本和十六进制编辑器)v14.0版
    010EditorforMac是一款十分强大的二进制文件编辑器,可以用于编辑任何类型的二进制文件,包括磁盘映像、可执行文件、媒体文件、数据文件等等。该软件提供了多种文件格式的解析和编辑功能,支持自定义模板,用户可以根据自己的需求创建自己的模板来解析和编辑各种类型的二进制文件。......
  • 获取 Python Decimal 的精确十进制字符串表示形式?
    如果我有一个PythonDecimal,我怎样才能可靠地获得数字的精确十进制字符串(即不是科学记数法)表示而不带尾随零?例如,如果我有:>>>d=Decimal('1e-14')我会像:>>>get_decimal_string(d)'0.00000000000001'但是:Decimal类没有任何to_......
  • 在PB中,字符串与十六进制的互转
    //字符串转换为16进制stringls_hex='',hex=''charlch_hex[0to15]={'0','1','2','3','4','5','6','7','8','9','a','......
  • TruePositive 如何是 keras.metrics.TruePositives 中的十进制数?
    我正在尝试在图像数据集上训练CNN模型,但我被获取TruePositives、TrueNegatives、FalsePositives和FalseNegatives的十进制值所困扰。这怎么可能?ERRORsampleEpoch1/336/36━━━━━━━━━━━━━━━━━━━━69s2s/step-false_negatives:30.1351-false_......
  • 如何将字符串转换为十进制数字?
    我有一个包含以下格式字符串的python列表:A1=['"29.0"','"65.2"','"75.2"']如何将这些字符串转换为十进制数字以对列表元素执行算术运算?可以使用float()函数将字符串转换为十进制数。以下是如何执行此操作的示例:A1=['"29.0"',�......
  • n进制转十进制
    将二进制、八进制、十六进制转换为十进制二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。假设当前数字是N进制,那么:对于整数部分,从右往左看,第i位的位权等于Ni-1对于小数部分,恰好相反,要从左往右看,第j位的位权为N-j。更加......
  • 仅做笔记用:base64字符串转换为十六进制形式表示的二进制数据
    使用JavaScript实现一个函数,参数是一个base64的字符串,将这个字符串解析成二进制数据,并将这个二进制数据的每个字节以一个十六进制两位数表示出来,每个字节的十六进制两位数之间空一格,每行16个字节,返回整理好的十六进制形式。functionbase64ToHex(base64Str){//解析ba......
  • 当谈论掩码数位和IP总数时,通常是指在特定子网掩码下可用的IP地址数量。IPv4地址由32位
    当谈论掩码数位和IP总数时,通常是指在特定子网掩码下可用的IP地址数量。IPv4地址由32位二进制数组成,用四个八位字段表示,每个字段用点分十进制表示,例如192.168.1.1。子网掩码用于确定一个IP地址中哪些位是网络地址,哪些位是主机地址。常见的子网掩码包括:/24子网掩码:255.255.255.......