十进制数转换为二进制数

  十进制数转换为二进制数的基本方法是:对于整数采用“除2取余”,对于小数采用“乘2取整”。具体做法为:对于十进制数整数,用2连续除要转换的十进制整数及各次所得之商,直除到商等于0时为止,则各次所得之余数即为所求二进制整数由低位到高位的值;对于十进制小数,用2连续乘要转换的十进制小数及各次所得之积的小数部分,直乘到积的小数部分为0(或满足所要求的精度)时为止,则各次所得之积的整数部分即为所求二进制小数由高位到低位的值。当十进制数包含有整数和小数两部分时,可分别将整数和小数进行转换,后相加。

       例:将十进制数53.375转换成二进制数。

于是, 53.375 = 110101.011B 。

二进制数转换为十进制数

        二进制数转换为十进制数的基本方法是将二进制数的各位按权展开相加。

      例:  将二进制数11011.101转换成十进制数

11011.101B =1×24+1×23+0×22+1×21+1×20+1×2-1+0×2-2+1×2-3

=16+8+0+2+1+0.5+0+0.125 =27.625

于是, 11011.101B =27.625  。

例:逆序的二进制数

问题描述

把一个十进制整数转换成二进制,然后将其二进制倒过来得到的新的数的十进制是多少?

例如,十进制整数6的二进制数为110,逆序后为011,去掉前导0,得到的新数为11,对应的十进制数为3。

输入

输入第1行为一个整数T(1≤T≤100),表示测试用例的组数。

之后T行,每行为1个十进制整数X(0≤X≤2^31−1)。

输出

二进制数逆序后得到的新的十进制数。

输入样例

3

6

8

1

输出样例

3

1

1

思路:

直接采用“除2取余”的方法将输入的十进制整数转换为二进制数保存到a数组中,a[0]保存二进制数的最低位。之后将数组a中保存的二进制数码按权值展开即得到逆序后的十进制数。

注:

小tip:去除前导0的方法:由于存储结果的数组已经将答案逆序,故只需找从位置0开始找第一个不为0的数,并指向它即可。    for(k=0;k<len&&a[k]==0;k++);  此代码进行实现;

例:数组a中的结果为0011时,k会指向序号为2的数;

#include <iostream>
using namespace std;
int main(int argc, char** argv) {int t;//组数 cin>>t;while(t--){int n;//输入十进制数 cin>>n;int a[32];//存储转化后的二进制数,a[0]是最低位 int len=0;//存储数组长度 while(n!=0)//十进制转为二进制{a[len++]=n%2;n/=2;}int k;int ans=0;
for(k=0;k<len&&a[k]==0;k++);//去除前导0(逆序了二进制,然后搜寻前导0,k指向没有0的位置) for(int i=k;i<len;i++) // 去掉前导0后,a[k]~a[len-1]正好是逆序后的二进制数{ans=ans*2+a[i]; //二进制转为十进制 }cout<<ans<<endl;}return 0;
}

如果觉得不错的话,点个赞在走吧。

二进制与十进制的相互转换【进制转换】相关推荐

  1. c++二进制转十进制_进制转换:二进制、八进制、十进制、十六进制相互转换

    将二进制.八进制.十六进制转换为十进制 二进制.八进制和十六进制向十进制转换都非常容易,就是"按权相加".所谓"权",也即"位权". 假设当 ...

  2. 二进制-八进制-十进制-16进制之间的转换

    进制之间的转换 主要用到连个函数: Convert.ToInt32(str,numbased):将字符串转成str,按照numbeased指定的进制转成10进制数: Convert.ToString( ...

  3. 二进制在线计算机,计算机进制转换计算

    <计算机进制转换计算>由会员分享,可在线阅读,更多相关<计算机进制转换计算(8页珍藏版)>请在人人文库网上搜索. 1.各种进制转换一.进制的概念在计算机语言中常用的进制有二进制 ...

  4. python3十进制转二进制_Python3中数字进制转换

    Python中数字进制默认为十进制,可通过内置函数转换为二进制.八进制.十六进制 十进制整数转其他进制 1. 十进制转二进制: 设 num1 为123,通过 type( ) 可以看到类型为 int 使 ...

  5. python蓝桥杯试题 基础练习 十六进制转十进制 实现进制转换

    python将输入到的字符串转换为十进制输出 问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. 注:十六进制数中的10~15分别用大写的英文字母A.B.C.D. ...

  6. 【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换

    本文已收录于专栏 <Java入门一百例> 学习指引 序.专栏前言 一.[例题1] 2.解题思路 3.模板代码 4.代码解析 二.推荐专栏 三.课后习题 序.专栏前言    本专栏开启,目的 ...

  7. 进制转换(二进制,八进制,十进制)

    ####前言 对于整数,java语言有三种表现形式. 十进制,最常见,生活中使用的就是,范围:0-9,规则: 满10进1 .如"23" 八进制 ,范围:0-7 规则: 满8进1 用 ...

  8. python进制转换函数

    一:二,八,十六进制转十进制 注意2进制对应的数## 标题值范围只能是0和1,超过范围会报错,8进制和16进制同理. print(int('100',2)) #二进制转十进制,int('20',2) ...

  9. 基于单片机(AT89C51)的进制转换及进制计算器

    基于单片机(AT89C51)的进制转换及进制计算器 闲来无事,用手头51单片机做个进制计算器 成品功能:能实现十进制带负数.带小数点的加减乘除,不同进制之间的转换,同一进制之间的加减乘. 材料 AT8 ...

  10. python的chr可以转换中文吗_Python3的内置函chr和ord及进制转换,format

    python的内置函数中,有一对函数:chr 和 ord,有着相反的功能. 1. chr(x):用一个数值作参数,返回一个对应的unicode字符,该参数的有效范围是从0到1114111(16进制时为 ...

最新文章

  1. 图解Oracle存储过程教程
  2. 在DNN中如何使FriendlyURL使用PageName作为页面名称
  3. php钩子的作用,php中的钩子理解及应用实例分析
  4. 【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(2)
  5. windows 2008 终端服务器配置,windows 2008终端服务器设置
  6. D3 Geographies
  7. 欧氏空间内积定义_泛函分析笔记3:内积空间
  8. github android
  9. JavaScript之继承和prototype
  10. 根据开始日期和结束日期获取基金的当天净值,并计算收益率
  11. UITextView的使用详解
  12. 03-【nginx】nginx源码分析--proxy模式下nginx的自动重定向auto_redirect
  13. 深度解析,BIM应用落地,基于BIM的群塔作业方案优化
  14. 使用 vlmcsd 部署 KMS 服务器
  15. 【论文笔记】递归级联网络(Recursive Cascaded Networks)论文及VTN(Volume Tweening Network)
  16. C#与西门子1500通讯案例——基于S7.net+
  17. Echarts直角坐标系x轴y轴属性设置大全
  18. 怎么查看笔记本内存条型号_内存条,图文告诉您怎么查看内存条的型号
  19. matlab求级数求和,实验七_matlab求解级数有关计算
  20. UE4 创建暂停和结束游戏UI

热门文章

  1. Sql Server 中 Order by排序(升序,降序)
  2. 基于docker官方Ubuntu镜像build和使用systemd的一些常见问题
  3. Matlab绘图------三维绘图(二)---surf函数用法
  4. 基于BP神经网络的模式识别
  5. C++ 抓取和批量下载网站上的图片或文件
  6. Shiro介绍及解析
  7. python名片系统管理源代码_python实现名片管理系统项目
  8. SQL 查询中exists用法
  9. 新浪 股票html5源代码,HTML5特效库 百度总裁李彦宏强力推荐 程序员表白源码
  10. grsm.qq.html,光荣使命手游邀请码免费分享 腾讯光荣使命最新邀请码真实有效