不同进制数的转换及应用

C/C++库函数(strtol()/itoa())进制转换 1.strtol()函数: 作用: 它的功能是将一个任意1-36进制数转化为10进制数,返回是long int型。 long int strtol(const char *str, char **endptr, int base); 把参数 str 所指向的字符串根据给定的 base 转换为一个长整数(类型为 long int 型),base 必须介于 2 和 36(包含)之间,或者是... 阅读详情
 在计算机领域中,有时需要将十进制数转换为二进制、八进制、十六进制的数;有时又需要逆向转换将二进制、八进制和十六进制的数转换为十进制或它们相互之间进行转换.

         不同进制转换的基本算法是:

         (1) 十进制(x)转换为任意进制数(n)的方法:将十进制数除以n进制反序取余.

         (2) 将任意进制数转换为十进制数方法:按“权”展开求和.

         (3) 二进制、八进制、十六进制之间的转换方法:利用3位二进制表示1位八进制数,用4位二进制数表示一位1位十六进制数的方法.

         1、将十进制转换为任意进制(设进制n<10)

短除法:(39)10=(100111)2              (245)10=(365)8

 

         示例Code:

        /// <summary>
        /// 接受2个参数,val1是需要转换的十进制数,val2是需要转换的进制(10以下的)
        /// </summary>
        protected String ZhuanHuan(Int32 val1, Int32 val2)
        {
            if (val2 >= 10 || val2 < 2)
                return "请输入2到9之间的整数";
            if (val1 == 0)
                return "0";
            IList<Int32> yuList = new List<Int32>();    
//用来存储余数
            Int32 yuShu;
            try
            {
                while (val1 > 0)
                {
                    yuShu = val1 % val2;
                    yuList.Add(yuShu);
                    val1 = val1 / val2;
                }

                StringBuilder strOut = new StringBuilder();
                strOut.Append(String.Format("转换为{0}进制的结果为:",val2));
                if (yuList != null && yuList.Count > 0)
                { 
//反向取余数
                    for (Int32 i = yuList.Count - 1; i >= 0; i--)
                    {
                         strOut.Append(String.Format("{0}", yuList[i]));
                    }
                }
                return strOut.ToString();
            }
            catch (Exception ex)
            {
                return String.Format("出错了:{0}", ex.Message);
            }
        }

对于大于10的进制要另作处理了,例如16进制,就要用a、b、c等字符来进行数字的代替!

 

2、将任意进制转换为十进制,按权展开

设任意进制n数位x,按权展开的模式是:

       (100111)2  =1X25+0X24+0X23+1X22+1X21+1X20=(39)10

       (365)8=3X82+6X81+5X80=(245)10

示例Code:

        /// <summary>
        /// 接受2个参数,第一个是数值,第二个是原进制
        /// 在这里我们只考虑10进制以下的,对10进制以上的也同样适用,只是这里就不能用int了,我这里只是为了方便处理,原理是一样的
        /// </summary>
        protected String ZhuanHuan(Int32 val1, Int32 val2)
        {
            if (val1 == 0)
                return "0";
            if (val2 >= 10 || val2 < 2)
                return "只处理10进制以下的数";
            char[] valChar = val1.ToString().ToCharArray();
           
//对数组进行反序
            if (valChar.Length > 0)
            {
                Int32 begin = 0;
                Int32 end = valChar.Length - 1;
                while (end > begin)
                {
                    char temp = valChar[begin];
                    valChar[begin] = valChar[end];
                    valChar[end] = temp;
                    begin++;
                    end--;
                }
            }
            StringBuilder strOut = new StringBuilder();
            strOut.Append("转换为10进制的结果为:");
            double valueOut = 0.0;
            for (Int32 i = 0; i < valChar.Length; i++)
            {
                valueOut += Int32.Parse(valChar[i].ToString()) * (Math.Pow(val2, i));               
            }
            strOut.Append(String.Format("{0}", valueOut));
            return strOut.ToString();
        }

 

手把手教你学Simulink--人形机器人控制场景实例:基于Simulink的多连杆人形机器人拉格朗日动力学建模仿真 matlab编辑% 连杆长度 (m)% 躯干(髋到CoM)% 大腿% 小腿% 质量 (kg)% 转动惯量(绕质心,简化为杆)matlab编辑% 躯干CoM(假设在髋上方L_body/2处)% 左大腿CoM% 左小腿CoM% (右腿类似,略)本文完成了基于Simulink的多连杆人形机器人拉格朗日动力学建模仿真,实现了:✅ 定义7-DOF平面人形结构✅ 使用Symbolic Math Toolbox自动推导动力学方程✅ 生成。 阅读详情

相关推荐

大唐豪侠服务器列表文件格式错误,关于大唐豪侠一键端的一些问题心得

有人问了大唐豪侠架设方面的问题,我简单研究了一下,做了个整理,现放出来大家一起研究讨论,我是把服务端的解压到了D盘里面了。第一个问题:架设成功后,运行客户端提示获取服务器列表失败,这个原因是因为压缩的一键端是整理过的,我们需要把服务器列表等解压出来,详见截图首先到这个目录里面找到package.zip,找到这个以后这里要注意,解压路径里面一定不要有package,这个解压成功后就有了服务列表等...

weixin_42530536的博客 1528

为什么二进制按权展开就是十进制?彻底搞懂原理

1. 问题描述 为什么二进制按权展开就是十进制? 按照我们所学到的知识,来举例说明。 比如 :(1111)2 按权展开就是: 1x23+1x22+1x21+1x20=15 我们得到了15对吧,那么两个问题 为什么15这个就是十进制呢? 为什么展开后相加就正好等于十进制的15呢? 2.问题解答 首先来看我们为什么按权展开? (1111)2因为逢二进一所以按权展开就是要这样: 1x23+1x22+1x21+1x20 由于我们习惯性的把加起来的和等于十进制的15所以我们会误认为,按权展开就是十进制 其.

17万+

【Transformer 相关理论深入理解】注意力机制、自注意力机制、多头注意力机制、位置编码

transformer原理

qq_38253797的博客 2万+

计算机中各种进制之间的相互转换过程

各进制之间的相互转换

weixin_69283129的博客 2万+

wps脚注转参考文献格式

用于写论文时直接将规范的脚注格式转为参考文献格式

Zeaf的博客 1556

Xilinx Blockset Counter计数器模块使用及参数配置

本文详细介绍了Simulink中Xilinx Blockset库Counter模块的使用以及参数说明。

白码王子小张的博客 1096

进制转换应用场景_编程中常用的二进制、八进制、十进制、十六进制数据转换,总结的好!...

进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。位权是指,进位制中每一固定位置对应的单位值。进制也就是进制位,对于接触过电脑的人来说应该都不陌生,我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。比如二进制是逢2进一位,十进制...

weixin_39683241的博客 2137

深入解析Gerber RS274X文件格式:从基础语法到实战应用

本文深入解析PCB制造的核心标准Gerber RS274X文件格式,详细介绍了其基础语法、坐标系统、功能码以及嵌入式光圈定义等关键特性。通过实战案例演示了如何解析和手写Gerber指令,并总结了常见错误与调试技巧,帮助PCB工程师掌握这一与制造工厂沟通的“通用语言”,确保设计准确无误地转化为实体电路板。

weixin_29252171的博客 94

(imooc笔记)短除法计算算 十进制 八进制 十六进制

公式: N = (N div d) *d + N mod d   (div 表示整除,mod 表示求余) 1348 (十进制)= 2504 (八进制) = 544 (十六进制) = 10101000100 (十六进制) 短除法 N N  div 8 N mod 8 1348 168 4 168 21 0 21 2 5 2 ...

u014314303的博客 3166

逻辑电平(TTL/CMOS/LVDS/LVPECL/CML)

逻辑电平介绍 TTL------晶体管-晶体管逻辑门(Transistor-Transistor Logic gate) TTL采用5V电源

sinat_15677011的博客 2万+

【推荐100个unity插件之34】在unity中实现和Live2D虚拟人物的交互——Cubism SDK for Unity

Live2D是一款2D建模的软件,常用于游戏,动态壁纸,虚拟主播,游戏公司里面是有专门的ive2D岗位的。游戏里面还有一个经常使用的软件——spine,他做的也是2d的模型,但是他更适合做一些动作,Live2D更适合人物交互方面。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4996

十进制转换成其他进制和其他进制数转换成十进制数

<br />十进制数转换成其他进制数:<br /><br />#include<stdio.h><br />int main()<br />{<br />    int a[100000],s,b,i,j=0;<br />    scanf("%d%d",&s,&b);<br />    while(s!=0)<br />    {<br />               a[j++]=s%b;<br />               s/=b;<br />    }<br />    for(i=j-1;

neoxuhaotian的专栏 911

计算机组成原理(第三版)唐朔飞-第八章CPU的结构和功能-课后习题

8.1CPU有哪些功能?画出其结构框图并简要说明每个部件的作用。

weixin_45735391的博客 6万+

C++ 16进制数和10进制数的转换类

#include <iostream> #include <stdlib.h> #include <string> #include <ctime> using namespace std; class Hex { private: string hexadecimal = "0"; int decimal = 0; public: Hex() = default; ~Hex() = default; Hex(co

xdt89460的博客 729

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

不同进制数的转换

Sponge_Bob__的博客 273

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

二进制与十进制数互相转换的方法及原理

有人问我一道十进制数转化为二进制数的题:13.625转化为二进制应该如何表示。让我回忆起十多年前学编程时就搞不懂二进制,不找“不必求甚解”的借口,我搜索了一些平台,但很失望,这么多年过去了,能找到的资源依然和以前一样,只讲怎样操作,不提为什么这样操作。让读者、学习的人知其然,不知其所以然。也可能“大神”们认为,二进制与十进制数互相转换的方法告诉你后,你很容易就理解背后的原理了。在知乎上看到吐槽高校的教材编写质量的文章有很多,才知道实际上大部分人和我一样,都没有这样高的悟性。

Galaxy_0的博客 725

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

二进制数表示法

二进制数表示法 二进制数是数字电路中应用最广泛的一种数值表示方法,在逻辑代数中也经常使用。 1、十进制数 在这种计数进位制中,每一位用0~9十个数字来表示,所以计数基数是十。超过9的数则需用多位数表示,其中低位数和相邻高位数之间的关系是“逢十进一”,故称为十进制。 例如:(143.75)10=1×102+4×10+3×10°+7×10-1+5×10*-2 所以任意一个正的十进制数D都可以展开成 式中ki是第i位的系数,它可能是0~9十个数字中的任何一个,10i叫做第i位的位权,ki10i是第i位的数值。若整

qq_45180475的博客 1万+

进制转换:输入一个十进制数N,将它转换成R进制数输出

 代码一: #include #include void f(int n,int r); int main() {     int n,r;     while(scanf("%d %d", &n, &r)!=EOF)     {         f(n,r);         printf("\n");     }     return 0; } void

lbylzk的博客 2万+

16位转10位c语言,10进制数转换为16位二进制数

写在前面:题解是对具体题目的编程实现,不会具体讲解C语言语法。请先大致学习好语法,自己敲敲代码后再看题解(上来就直接看题解的习惯不好哟~)。在每一题的题解之前,会列出本题涉及到的语法知识供参考,可以在教材或其他学习资源找到这些内容学习。本题的预备知识:变量的定义与赋值操作输入(scanf)输出(printf)语句for、while循环语句数组的运用10进制数转换为16位二进制数成绩10开启时间20...

weixin_39687359的博客 981

Java对各种进制数之间的转换进行操作

package com.ly.demo1; //对各种进制数之间的转换进行操作 public class demo01 {   public static void main(String[] args) {   int number = 123;   String x1 = Integer.toHexString(number);//十进制转十六进制   System.out.println(x...

li99yangg的博客 780

javascript将10进制数转换为2进制

javascript中将10进制数转换为2进制有两种方式 一种是直接用toString(2)这个方法,一种是自己写一个方法换算,以下是代码: var num = 11; var str = num.toString(2);    /*将十进制数转变为二进制数*/ function dec2bin(num){ var result = ""; if(num == ...

weixin_30569033的博客 294

c语言二进制数表示_【C语言】进制数的运算规则及其范围

导读 这一章节介绍的是进制数的运算,进制数的运算在计算机中非常重要,我们的C语言程序操作的就是内存和字节,那么对进制数的运算就非常频繁,所以掌握进制数的运算规则和各个进制数所能够表示的范围就变得更加重要。在介绍进制数之前,我们简单的了解一下计算机的发展历史,了解一下计算机的工作原理,这对我们后面的学习会有一定的帮助,当然,如果想要掌握更多的内容,可以去查阅相...

weixin_39985286的博客 1141

怎么用计算机中的计算器计算二进制数,用windows自带的计算器怎么算进制数转换?比如一个二进制数转化为十进位数?...

用windows自带的计算器怎么算进制数转换?比如一个二进制数转化为十进位数?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!用windows自带的计算器怎么算进制数转换?比如一个二进制数转化为十进位数?选择科学型就可以了计算机十进制换算二进制怎么换算如:将十进制数60.625转化为二进制数整数与小数要分开算整数除二取余...

weixin_39710003的博客 1433

不同进制下的进位问题

引例: 输入一个十进制正整数,将它对应的二进制数的各位反序,形成新的十进制数输出。 标码: #include <stdio.h> int main() { int x,y,t; scanf("%d",&x); y=0; while( x ){ t=x%2; y=2*y+t; x/=2; } printf("%d\n",y); return 0; } 其中最关键的一步是 y=2*y+t; 从此我们可以看到一个一般规律: 对于十进制:

qq_44665427的博客 712

进制数及其转换(二进制,十进制,十六进制)

数值数据是表示数量大小的数据,有多种表示方法。日常生活中一般采用十进制数进行计数和计算,但十进制数难以在计算机内直接存储与运算。在计算机系统中,通常将十进制数作为人机交互的媒介,而数据则以二进制数的形式存储和运算。 计算机采用二进制的主要原因有以下几点: (1)易于物理实现 二进制在技术上最容易实现。这是因为具有两种稳定状态的物理器件很多,如门电路的导通与截止、电压的高与低等,而它们恰好可以

夜空 2万+

Python中不同进制的数字的表示以及转换的方式,一些函数的使用(hex,oct,bin函数详解,进制转换计算过程详解)

这篇文章主要针对Python基础数据转换中数字进制转换的内容,进制转换的详细解释和运算过程,适合初学者及计算机二级Python考试的朋友们,要是有不理解的地方可以随时私信我。

qq_61210648的博客 2177
上一篇: 双核与双芯真的不同
下一篇: 常见的进制转换方法
Devillyd
博客等级 码龄23年 58粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值