精华内容
下载资源
问答
  • 一、进制数转换为二进制进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将进制数的整数部分和小数部分分别转换后,再加以合并。 1. 进制整数转换为二进制整数 进制整数转换为二进制...

    一、十进制数转换为二进制数
    十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
    1. 十进制整数转换为二进制整数
    十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
    【例1 】 把 (173)10 转换为二进制数。
    在这里插入图片描述

    2.十进制小数转换为二进制小数
    十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
    然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
    【例2】把(0.8125)10转换为二进制小数。
    在这里插入图片描述
    【例3】(173.8125)10=( )2
    解: 由【例1】得(173)10=(10101101)2
    由【例2】得(0.8125)10=(0.1101)2
    把整数部分和小数部分合并得: (173.8125)10=(10101101.1101)2
    更具体二进制和十进制之间的转换参考:https://jingyan.baidu.com/article/597a0643614568312b5243c0.html

    二、浮点类型数据的存储
    对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,不论是float还是double在存储方式上都是遵从IEEE的规范的,float遵从的是IEEE R32.24 ,而double 遵从的是R64.53。

    无论是单精度还是双精度在存储中都分为三个部分:

    符号位(Sign) : 0代表正,1代表为负
    指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储
    尾数部分(Mantissa):尾数部分
    其中float类型数据的存储方式如下图所示:
    在这里插入图片描述

    而double类型数据的存储方式为:
    在这里插入图片描述

    R32.24和R64.53的存储方式都是用科学计数法来存储数据的,比如8.25用十进制的科学计数法表示为:8.2510º,而120.5可以表示为:1.20510²。而计算机根本不认识十进制的数据,他只认识0,1。所以在计算机存储中,首先要将上面的数更改为二进制的科学计数法表示。8.25用二进制表示可表示为1000.01。120.5用二进制表示为:1111000.1。用二进制的科学计数法表示1000.01可以表示为1.0000110³,1111000.1可以表示为1.111000110^6。第一位都是1,所以可以将小数点前面的1省略,所以23bit的尾数部分,可以表示的精度却变成了24bit,道理就是在这里,那24bit能精确到小数点后几位呢,我们知道9的二进制表示为1001,所以4bit能精确十进制中的1位小数点,24bit就能使float能精确到小数点后6位,而对于指数部分,因为指数可正可负,8位的指数位能表示的指数范围就应该为:-127-128了,所以指数部分的存储采用移位存储,存储的数据为元数据+127,下面就看看8.25和120.5在内存中真正的存储方式。

    值得注意的一个问题是:书上说之所以要将指数加上 127 来得到阶码,是为了简化浮点数的比较运算,这一点我没有体会出来。但是通过 127 这个偏移量 (移码),可以区分出指数的正负。阶码为 127 时表示指数为 0;阶码小于 127 时表示负指数;阶码大于 127 时表示正指数。

    首先看下8.25,用二进制的科学计数法表示为:1.00001*10³

    按照上面的存储方式,符号位为:0,表示为正,指数位为:3+127=130 ,位数部分为,故8.25的存储方式如下图所示:
    在这里插入图片描述

    而单精度浮点数120.5的存储方式如下图所示:
    在这里插入图片描述
    具体浮点型数据存储方式参考:https://wenku.baidu.com/view/905828797fd5360cbb1adb07.html

    展开全文
  • Perl进制数字转换为二进制字符

    千次阅读 2018-10-16 14:19:03
    以下函数可以将进制数字转换为二进制字符 #进制转换成二进制(8二进制) #参数说明:$dec:进制,$str二进制字符 sub dec_to_bin($$){ my $dec = shift; my $str = shift; if($dec < 2){ $str...

    项目需要,随笔记录一下。以下函数可以将十进制数字转换为二进制字符

    #十进制转换成二进制(8位二进制)
    #参数说明:$dec:十进制数,$str二进制字符
    sub dec_to_bin($$){ 
    	my $dec = shift;
    	my $str = shift;
    	if($dec < 2){
    	    $str = $dec.$str;
    		if(length($str) < 8){
    			my $len = 8-length($str);
    			for (my $i = 0; $i < $len; $i++) {
    				$str = '0'.$str;
    			}
    		}
    		return $str;
    	}
    	my $mod = $dec % 2;
    	$dec = ($dec - $mod) / 2;
    	$str = $mod.$str;
    	return &dec_to_bin($dec,$str);
    }
    
    #函数调用
    my $str = &dec_to_bin(20);  #输出00010100

     

    展开全文
  • 进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将进制数的整数部分和小数部分分别转换后,再加以合并。 1. 进制整数转换为二进制整数  进制整数转换为二进制整数采用"除2取余,逆序排列...
    十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
    

    1. 十进制整数转换为二进制整数

      十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
      十进制整数转二进制
      如:255=(11111111)B
      255/2=127=====余1
      127/2=63======余1
      63/2=31=======余1
      31/2=15=======余1
      15/2=7========余1
      7/2=3=========余1
      3/2=1=========余1
      1/2=0=========余1
      789=1100010101
      789/2=394.5 =1 第10位
      394/2=197 =0 第9位
      197/2=98.5 =1 第8位
      98/2=49 =0 第7位
      49/2=24.5 =1 第6位
      24/2=12 =0 第5位
      12/2=6 =0 第4位
      6/2=3 =0 第3位
      3/2=1.5 =1 第2位
      1/2=0.5 =1 第1位

    2.十进制小数转换为二进制小数

      十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。
      然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。 
      十进制小数转二进制
      如:0.625=(0.101)B
      0.625*2=1.25======取出整数部分1
      0.25*2=0.5========取出整数部分0
      0.5*2=1==========取出整数部分1
      再如:0.7=(0.1 0110 0110...)B
      0.7*2=1.4========取出整数部分1
      0.4*2=0.8========取出整数部分0
      0.8*2=1.6========取出整数部分1
      0.6*2=1.2========取出整数部分1
      0.2*2=0.4========取出整数部分0 
      0.4*2=0.8========取出整数部分0
      0.8*2=1.6========取出整数部分1
      0.6*2=1.2========取出整数部分1
      0.2*2=0.4========取出整数部分0
    展开全文
  • #Python# 进制数转换为二进制数(包含小数)问题描述问题分析代码 问题描述 编写程序,输入进制小数(只考虑正数),把它转换为以字符串形式存储的二进制小数,输出该二进制小数字符串。对于转换得到的二进制...

    #Python# 十进制数转换为二进制数(包含小数)

    问题描述

    编写程序,输入十进制小数(只考虑正数),把它转换为以字符串形式存储的二进制小数,输出该二进制小数字符串。对于转换得到的二进制小数,小数点后最多保留10位。小数点后不足10位,则输出这些位,尾部不补0;小数点后超出10位,则直接舍弃超出部分。十进制转换成二进制时,需要将整数和小数部分分开。整数部分的策略是除2取余,而小数部分的策略是乘2取整,分别转换后再将整数和小数部分合起来。不清楚的同学自己上网查阅相关资料。

    本题需要编写2个函数,分别对应整数和小数部分的转换过程。

    问题分析

    拆分问题为:
    (1)整数部分转换为二进制;
    (2)小数部分转化为二进制;
    (3)将整数部分与小数部分组合并输出。
    问题(1):构造函数conInt(),将整数部分除2取余存入列表中,后逆序列表再合并为字符串返回;
    问题(2):构造函数conFra(),将小数部分乘2取整存入列表篇中,后合并为字符串返回。需注意的是遇到无限乘2取整的十进制小数时,应舍0入1。
    问题(3):使用print(f"{a},{b}")的句式,将字符串组合输出

    代码

    def conInt(n):
        s=[]
        while(n):
            s.append(str(n%2))
            n=n//2
        s.reverse()
        return "".join(s)
    
    def conFra(n):
        x=[]
        s=[]
        while(n):
            n=n*2
            x.append(str(int(n)))
            n=n-int(n)
        for i in range(0,10):
            s.append(x[i])
        return "".join(s)
    
    
    def main():
        n=eval(input())
        a=int(n)
        b=n-a
        print(f"{conInt(a)}.{conFra(b)}")
    
    main()
    
    
    展开全文
  • 简单的利用for循环,将一个进制数字转换为二进制并输出 ... * 将任意一个进制数转换为二进制数并输出 */ int num=35;//设置任意一个数 int blcl=8;//二进制位数 int [] blc=new int [blcl];//
  • 简单实现 public static String toBinary(int n) { StringBuilder sb = new StringBuilder(); for (int i = 31; i >... // 将最高移至最低(移31), 再 & 1 操作,由于1在内存...
  • 描述: 把二进制数转换成进制数。 输入: 输入是一个8二进制数。 输出: 把输入的数转换为十进制数输出。 输入样例: 10000001 输出样例: 129
  • C++学习记录:将进制数转换为二进制数(补码形式) 0、以下操作前提:不动符号 基本运算: 1、正数的补码 等于 原码; 2、负数的补码 等于 原码取反,末位再加一; 推论: 3、补码的补码 等于 原码; 4、反码的...
  • 我们来看看下面的动图(白色为二进制,红色为进制),你找到规律了吗? 我们这节课学习一下二进制转换十进制的方法。方法如下:将二进制从小点开始,往左从0开始对数值进行正序编号,往右从-1开始对数值进行编号...
  • 进制浮点数转化为二进制的Python代码 进制整数转化为r进制 程序功能为:输入进制整数和欲转换的进制r,将进制转换为r进制。 编程思想为:调用函数DToR,逐求模。若该为大于9的,则以字母代表...
  • 进制转换为二进制数字为例子 进制 二进制 1 1 2 10 3 1%1 10 1010 二.以进制获得每一数字为例子 1 -----> 1%10=1 11 -----> 11%10=1 + (11/10 )%10=1 123-----> 123%10=3 + ( ...
  • 将一个长度最多为30数字的进制非负整数转换为二进制数输出。 输入: 多组数据,每行为一个长度不超过30进制非负整数。 (注意是10进制数字的个数可能有30个,而非30bits的整数) 输出: 每行输出...
  •  #include  //将进制转化为二进制数运算的取操作  using namespace std;  int main()  {  unsigned short i;  cout << “请输入一个小于65536的正整数” << endl>> i;  for(int j=15; j ...
  • 二 ---->  二进制数转换为十进制数  二进制数第0的权值是2的0次方,第1的权值是2的1次方……  所以,设有一个二进制数:0110 0100,转换为10进制为:  下面是竖式:  0110...
  • 代码如下:1 #include //将进制转化为二进制数运算的取操作2 using namespacestd;3 intmain()4 {5 unsigned shorti;6 cout << "请输入一个小于65536的正整数" <>i;8 for(int j=15; j >= 0;...
  • * 对于一个进制A,将A转换为二进制数,然后按逆序排列,再转换为进制 * B就是A的二进制逆序 * 输入一个1000以内的进制整数 * */ import java.math.BigInteger; import java.util.Scanner; ...
  • 二进制、八进制、十六进制转换为十进制二进制、八进制和十六进制向进制转换都非常容易,就是“按权相加”。所谓“权”,也即“权”。假设当前数字是N进制,那么:对于整数部分,从右往左看,第 i 权等于...
  • 1.编程将键盘输入的4位十进制数转换成二进制,并以十六进制形式在屏幕上显示。...在各个子程序之间,用BX寄存器来完成参数传递:在过程DECIN中取得的输入数据转换为二进制后保存在BX寄存器中,而过程HEXDISP将B
  • 把给定的进制29除以2,商为14,所得的余数1是二进制数的最低的数码,再将14除以2,商为7,余数0。再将7除以2,商为3,余数1,再将3除以2,商为1,余数1,再将1除以2,商为0,余数1是二进制数的最高...
  • function numberOf1(n){ var c; for (c =0; n; ++c) { n &= (n -1) ; // 清除最低的1 } return c; }
  • 将一个长度最多为30数字的进制非负整数转换为二进制数输出 输入描述: 多组数据,每行为一个长度不超过30进制非负整数。 (注意是10进制数字的个数可能有30个,而非30bits的整数) 输出描述: 每行输出对应...
  • 本文实现的是将十二的有符号的二进制数转换为十进制数: 由于在数字在显示中,如果高位为0会在显示中被省去,所以,这里无法检测到每个数的位数都为12,也就是无法全部检测到12的符号。 比如: 000011110000...
  • 将一个长度最多为30数字的进制非负整数转换为二进制数输出。 思想:从大往小进位 本题思考点在于从大到小进位。算法的核心三行相当于执行了我们平常的除法。 #include <algorithm> #include <cstdio>...
  • 已知一个只包含0和1的二进制数,长度不大于10,将其转换为十进制并输出。 输入描述 输入一个二进制整数n,其长度不大于10 输出描述 输出转换后的进制,占一行 样例输入 110 样例输出 6 solution:  很多学过C...
  • 进制小数转换为二进制采用乘2取整的方法1.用2乘以进制小数,将得到的乘积整数部分取出2.再用2乘以余下的小数,再将乘积的整数部分取出3.反复进行直到乘积的小数部分为0或者满足精度要求为止4.把最先得到的整数...
  • 适用于将二进制数转换为十进制,A为进制,B为二进制。{A,B}每次左移一,判断A的每四是否>4,若大于四则+3,否则保持不变;B为多少二进制数则左移多少次。最终A是B转换成进制的数。代码为32二进制数转换...
  • 进制:由 0~9 个数字组成二进制:由 0和1 两个数字组成1、整数转换十进制转二进制的原理:进制的除以2,直到商为0,最后反向取余数。比如下图中的例子,进制的13转为二进制表示,则1101。进制转二进制...
  • 十进制转换成二进制  举例:752(十进制数) --》 转换成 二进制数    从下往上 读取数据 ... 表示的十位数 为 7,也是 8进制 每位上 最大的数字  011110000 转换为 8进制 ,从右到左 ,三位 隔开 ...
  • 二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向进制转换都非常容易,就是“按权相加”。所谓“权”,也即“权”。 假设当前数字是N进制,那么: 对于整数部分,从右往左看,第i权...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,998
精华内容 1,199
关键字:

十位数转换为二进制