返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言如何实现常见进制转换
  • 692
分享到

C语言如何实现常见进制转换

2023-07-05 22:07:18 692人浏览 八月长安
摘要

这篇文章主要介绍“C语言如何实现常见进制转换”,在日常操作中,相信很多人在C语言如何实现常见进制转换问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言如何实现常见进制转换”的疑惑有所帮助!接下来,请跟着小编

这篇文章主要介绍“C语言如何实现常见进制转换”,在日常操作中,相信很多人在C语言如何实现常见进制转换问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言如何实现常见进制转换”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、十进制数转换为二进制数、八进制数

方法:举例将十进制数100转换为二进制数,就是将100与2相除,得到商以及余数,再将商与2不断相除,最终除到商为0。按顺序记录下余数,再将余数逆序输出,即为二进制的结果。八进制同理,商不断与8相除,最终除到商为0,按顺序记录下余数,再将余数逆序输出,即八进制的结果。此方法同样可以推广到要转换成二到九的任何一种进制。

图形如下:

C语言如何实现常见进制转换

代码如下:

#include <stdio.h>int main(){    int x, n;    scanf("%d %d", &x, &n);//x是要转换的十进制数,n为要转换成的进制    int arr[100] = { 0 };//创建一个足够大的数组来存放余数    int i = 0,j = 0;    while (x)    {        arr[i++] = x % n;//存放余数,i最后的值正好是余数的个数        x /= n;    }    for (j = i - 1; j >= 0; j--)    {        printf("%d", arr[j]);//余数倒序输出    }    printf("\n");    return 0;}

二、十进制转换为十六进制

将十进制转换为十六进制同样需要用到将商不断除16以及逆序输出等方法,但由于十六进制中会出现A\B\C\D\E\F等字符,所以还需要将取得的余数做进一步转换。代码如下:

#include <stdio.h>int main(){    int x;    scanf("%d", &x);    char arr[100] = { 0 };//因为十六进制中会出现A\B\C\D\E\F等字符,所以保存余数的数组类型应定义为char    int i = 0, j = 0;    while (x)    {        arr[i++] = x % 16;        x /= 16;    }    for (j = 0; j < i; j++)    {        //将取出的余数转换为对应的字符        switch (arr[j])        {        case 10:arr[j] = 'A'; break;        case 11:arr[j] = 'B'; break;        case 12:arr[j] = 'C'; break;        case 13:arr[j] = 'D'; break;        case 14:arr[j] = 'E'; break;        case 15:arr[j] = 'F'; break;        default:arr[j] += 48;        }    }    for (j = i - 1; j >= 0; j--)    {        printf("%c", arr[j]);//逆序打印    }    printf("\n");    return 0;}

三、二进制数、八进制数转换为十进制数

方法:需要将输入的数的每一位取出,再与这个位上的权重相乘,最后相加得到结果。

代码如下:

#include <stdio.h>#include <math.h>int main(){    int n = 0, sum = 0, i = 0, x = 0;    scanf("%d %d", &x, &n);//x为输入的二进制或八进制的数,n为进制。    while (x)    {        sum += (x%10)*pow(n, i++);//x%10将x的每一位取出,再与这个位上的权重相乘。        x /= 10;    }    printf("%d\n", sum);    return 0;}

四、十六进制数转换为十进制数

十六进制中含A\B\C\D\E\F等字符,所以在输入的时候可以将其看成输入一个字符串,需要先将每位上的字符转换为对应的数字与本位上的权重相乘,再相加得到最后的值。

代码如下:

#include <stdio.h>#include <string.h>#include <math.h>int main(){    char arr1[100] = { 0 };    scanf("%s", arr1);    int len = strlen(arr1);    int i = 0,  sum = 0;    for (i = 0; i<len; i++)    {        int temp = 0;        switch (arr1[i])        {        case 'A':temp = 10; break;        case 'B':temp = 11; break;        case 'C':temp = 12; break;        case 'D':temp = 13; break;        case 'E':temp = 14; break;        case 'F':temp = 15; break;        default:temp = arr1[i] - '0'; break;        //将各个位上的字符转换为对应的数字        }        sum += temp * pow(16, len-i-1);//各个位上的权重相乘再相加    }    printf("%d\n", sum);    return 0;}

到此,关于“C语言如何实现常见进制转换”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: C语言如何实现常见进制转换

本文链接: https://lsjlt.com/news/355731.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C语言如何实现常见进制转换
    这篇文章主要介绍“C语言如何实现常见进制转换”,在日常操作中,相信很多人在C语言如何实现常见进制转换问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言如何实现常见进制转换”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-05
  • C语言实现常见进制转换的示例代码
    目录前言一、十进制数转换为二进制数、八进制数二、十进制转换为十六进制三、二进制数、八进制数转换为十进制数四、十六进制数转换为十进制数前言 生活中最常见的进制是十进制,而有一类编程题会...
    99+
    2023-05-14
    C语言实现进制转换 C语言进制转换 C语言 进制
  • C语言实现任意进制转换器
    本文实例为大家分享了C语言实现任意进制转换器的具体代码,供大家参考,具体内容如下 简单的C语言任意进制转换器 该进制转换器可进行任意进制转换,请看效果图: 代码 #include...
    99+
    2024-04-02
  • c语言如何进行强制类型转换
    小编给大家分享一下c语言如何进行强制类型转换,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于...
    99+
    2023-06-14
  • C语言中强制类型转换的常见方法
    目录将浮点数转换为整数将整数转换为字符将指针转换为整数将整数转换为指针注意事项示例代码结论C语言是一门强大的编程语言,它允许我们对不同的数据类型进行各种运算和操作。但是有时候,我们需...
    99+
    2023-05-20
    C语言强制类型转换方法 C语言强制类型转换 C语言 类型转换
  • C语言实现十六进制与二进制的相互转换
    目录十六进制->二进制二进制->十六进制本文中的代码可以将文件中的十六进制存储与二进制存储相互转换。 十六进制->二进制 原理是:每两位存储为一个字符(char)保...
    99+
    2022-11-13
    C语言 十六进制转二进制 C语言 二进制转十六进制 C语言 二进制 十六进制
  • C#实现进制转换
    十进制整数与其他进制的字符串之间的转换。 c#中十六进制用前缀0x表示。int c = 0x1000; 一、利用Convert.ToString(number, baseV...
    99+
    2024-04-02
  • C#如何实现转换十六进制
    这篇文章主要介绍“C#如何实现转换十六进制”,在日常操作中,相信很多人在C#如何实现转换十六进制问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#如何实现转换十六进制”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-17
  • Python和C语言利用栈分别实现进制转换
    目录问题描述C语言实现Python实现问题描述 利用栈的数据结构实现将十进制数转换成二进制数 C语言实现 顺序表的存储结构实现栈 代码: #include <stdlib.h&...
    99+
    2024-04-02
  • c语言如何将十进制转为二进制
    本篇内容主要讲解“c语言如何将十进制转为二进制”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“c语言如何将十进制转为二进制”吧!十进制转为二进制的方法:将十进制数字不断除以2直到商为零,然后将余数...
    99+
    2023-07-04
  • C语言每日练习之进制转换
    目录分析代码实现网上参考总结分析 我一开始的想法是通过输入整数形式八进制来转换成十进制输出,后来发现用字符数组输入更方便。我这里就讲讲我用整型数据输入的转换思路: 我们都知道二进制...
    99+
    2024-04-02
  • JavaScript如何实现进制转换
    这篇文章主要讲解了“JavaScript如何实现进制转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript如何实现进制转换”吧! ...
    99+
    2024-04-02
  • C#怎么实现进制转换
    今天小编给大家分享一下C#怎么实现进制转换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。十进制整数与其他进制的字符串之间的转...
    99+
    2023-06-30
  • C#如何实现强制转换
    这篇文章给大家分享的是有关C#如何实现强制转换的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。int 关键字表示一种整型,是32位的,它的 .NET Framework 类型为 System.Int32。(int)...
    99+
    2023-06-17
  • go语言如何进行强制类型转换
    今天小编给大家分享一下go语言如何进行强制类型转换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。go语言中的强制类型转换有三...
    99+
    2023-07-04
  • c语言怎么进行强制类型转换
    这篇文章主要讲解了“c语言怎么进行强制类型转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c语言怎么进行强制类型转换”吧!在c语言中,可以通过“(type_name) expression...
    99+
    2023-07-04
  • C语言16进制与ASCII字符相互转换
    1、把获取到的16进制数据转换成相同字符的ASCII字符,例:get[2] = {0x11,0x22};  →  put[4]={&...
    99+
    2024-04-02
  • python常见进制转换方法有哪些
    1. 标准进制转换其中比较常用到的是python的内置函数进行进制的转换,一般使用内置函数进行转换的时候是先将控制台输入的字符串或者是自定义的字符串先转换为10进制然后将10进制转换为其他的进制,常见的是二进制、十进制、八进制、十六进制之间...
    99+
    2023-05-14
    Python
  • javascript如何实现36进制的转换
    这篇“javascript如何实现36进制的转换”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这...
    99+
    2024-04-02
  • Java如何实现十进制与十六进制转换
    这篇文章主要介绍了Java如何实现十进制与十六进制转换,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。示例:import java.util.HashMap;impo...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作