首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

十进制到二进制-为什么不能将小数位的左右两边都转换成二进制,就像两边都是整数一样?

十进制到二进制的转换是将一个十进制数转换为二进制数的过程。在这个过程中,整数部分和小数部分需要分别进行转换。

整数部分的转换是将十进制数的整数部分从右向左依次除以2,直到商为0为止。每次除法的余数就是对应的二进制位,最后将这些余数从下往上排列,就得到了整数部分的二进制表示。

例如,将十进制数13转换为二进制数的整数部分: 13 ÷ 2 = 6 余 1 6 ÷ 2 = 3 余 0 3 ÷ 2 = 1 余 1 1 ÷ 2 = 0 余 1

将这些余数从下往上排列,得到二进制数的整数部分为1101。

对于小数部分,转换的方法是将十进制数的小数部分从左向右依次乘以2,直到乘积为0或者达到所需的精度。每次乘法的整数部分就是对应的二进制位,最后将这些整数部分从上往下排列,就得到了小数部分的二进制表示。

例如,将十进制数0.625转换为二进制数的小数部分: 0.625 × 2 = 1.25,整数部分为1 0.25 × 2 = 0.5,整数部分为0 0.5 × 2 = 1.0,整数部分为1

将这些整数部分从上往下排列,得到二进制数的小数部分为0.101。

综合整数部分和小数部分的结果,就得到了十进制数到二进制数的完整转换结果为1101.101。

为什么不能将小数位的左右两边都转换成二进制,就像两边都是整数一样呢?这是因为在二进制表示中,小数部分的每一位都代表着2的负幂次方,例如0.5表示2的-1次方,0.25表示2的-2次方,以此类推。而十进制数的小数部分可能是无限循环的,无法精确地用有限的二进制位表示。因此,将小数位的左右两边都转换成二进制是不可行的,需要使用特定的算法来进行近似表示。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云计算服务:https://cloud.tencent.com/product
  • 腾讯云数据库:https://cloud.tencent.com/product/cdb
  • 腾讯云服务器:https://cloud.tencent.com/product/cvm
  • 腾讯云云原生应用引擎:https://cloud.tencent.com/product/tke
  • 腾讯云音视频处理:https://cloud.tencent.com/product/mps
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发:https://cloud.tencent.com/product/mobdev
  • 腾讯云对象存储:https://cloud.tencent.com/product/cos
  • 腾讯云区块链:https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙:https://cloud.tencent.com/product/mu
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

java 中对 BigDecimal 类使用详解

3 BigDecimal 构造器 4 方法描述 5 为什么BigDecimal(double) 推荐使用 5.1 为什么会出现这种情况呢?...5.3 结论 6 除法运算可能报错原因 6.1 舍入模式 7 setScale() 8 总结 1 为什么学习这个类 因为不论是float 还是double都是浮点数,而计算机是二进制,浮点数会失去一定精确度...注:根本原因是:十进制值通常没有完全相同二进制表示形式;十进制二进制表示形式可能不精确。...5 为什么BigDecimal(double) 推荐使用 以上可以看出,我们要数,和使用这个对象之后,输出东西是不一样; 5.1 为什么会出现这种情况呢?...这是因为0.1无法准确地表示为 double(或者说对于该情况,不能表示为任何有限长度二进制小数)。这样,传入构造方法值不会正好等于 0.1(虽然表面上等于该值)。

1.1K30

Python3 四舍五入问题详解

近似值现象。 表示为二进制近似值后,Python系统在进行round计算时,使用近似值,不是使用原值。 【例1】十进制小数0.1无法使用有限位二进制精确表示,同一原值近似值都是相等。...从十进制二进制 :$(0.1){10} = (0.0001100110011001100110011001100110011001100110011001...){2}$ 在系统中,原值转为近似值:..._2(1.275)$更近, 显然1.27更近,于是:round(1.275, 2) = 1.27round(1.215, 2) = 1.22两边一样情况...: 这个方法将原值转换为略大十进制值,从而使输入值有限小数位数字不会发生变化(后面是0值,直到15位),避免出现"999变异"。...但受到双精度二进制近似存储影响,只能在十进制有效位数15位以内使用(digits<15)。需要注意,整数部分位数也考虑在有效位数之内。

3.2K30

C语言入门基础大全,自学C语言必备知识!

,用户输入普通十进制数字都要被计算机转换成二进制才能在计算机内部存储,同样计算机运算结果也为二进制,一般要将其转换成十进制数再输出给用户阅读,这种转换通常由计算机自动实现。...例:十进制数13转换成二进制值为1101,转换八进制为015,转换成十六进制为D. 2)将二进制、八进制和十六进制转换成十进制 乘积求和:将二进制每一位从低位高位(右边为低位,左边为高位)分别乘以.../运算分为两种情况:   a、“除”左右两边都为整数时,所得结果必然是整数(注意:仅取整数部分,不是四舍五入)比如:5/2值为2,不是2.5,1/2值为0。 ...b、“除”左右两边至少有一个是实型数据(即小数)时,所得结果为实型数据。...a、如果赋值号两边运算对象类型不一致,系统会自动进行类型转换,转换规则:将赋值号右边表达式类型转换成赋值号左边变量类型, 例:int y=3.5;在变量y中最终存储整数3。

1.7K2118

有人@我,你有一份C语言基础大全手册要领取,快来拿!

,用户输入普通十进制数字都要被计算机转换成二进制才能在计算机内部存储,同样计算机运算结果也为二进制,一般要将其转换成十进制数再输出给用户阅读,这种转换通常由计算机自动实现。...例:十进制数13转换成二进制值为1101,转换八进制为015,转换成十六进制为D. (2)将二进制、八进制和十六进制转换成十进制 乘积求和:将二进制每一位从低位高位(右边为低位,左边为高位)分别乘以.../运算分为两种情况: a、“除”左右两边都为整数时,所得结果必然是整数(注意:仅取整数部分,不是四舍五入) 比如:5/2值为2,不是2.5,1/2值为0。...b、“除”左右两边至少有一个是实型数据(即小数)时,所得结果为实型数据。...说明:a、如果赋值号两边运算对象类型不一致,系统会自动进行类型转换,转换规则:将赋值号右边表达式类型转换成赋值号左边变量类型, 例:int y=3.5; 在变量y中最终存储整数3。

92520

C语言零基础入门难发愁,那就快来看看这篇基础整理资料吧

,用户输入普通十进制数字都要被计算机转换成二进制才能在计算机内部存储,同样计算机运算结果也为二进制,一般要将其转换成十进制数再输出给用户阅读,这种转换通常由计算机自动实现。...例:十进制数13转换成二进制值为1101,转换八进制为015,转换成十六进制为D. (2)将二进制、八进制和十六进制转换成十进制 乘积求和:将二进制每一位从低位高位(右边为低位,左边为高位)分别乘以.../运算分为两种情况: a、“除”左右两边都为整数时,所得结果必然是整数(注意:仅取整数部分,不是四舍五入) 比如:5/2值为2,不是2.5,1/2值为0。...b、“除”左右两边至少有一个是实型数据(即小数)时,所得结果为实型数据。...a、如果赋值号两边运算对象类型不一致,系统会自动进行类型转换,转换规则:将赋值号右边表达式类型转换成赋值号左边变量类型, 例:int y=3.5; 在变量y中最终存储整数3。

76230

【必读】超全C语言基础知识大全

,用户输入普通十进制数字都要被计算机转换成二进制才能在计算机内部存储,同样计算机运算结果也为二进制,一般要将其转换成十进制数再输出给用户阅读,这种转换通常由计算机自动实现。...例:十进制数13转换成二进制值为1101,转换八进制为015,转换成十六进制为D. (2)将二进制、八进制和十六进制转换成十进制 乘积求和:将二进制每一位从低位高位(右边为低位,左边为高位).../运算分为两种情况: a、“除”左右两边都为整数时,所得结果必然是整数(注意:仅取整数部分,不是四舍五入) 比如:5/2值为2,不是2.5,1/2值为0。...b、“除”左右两边至少有一个是实型数据(即小数)时,所得结果为实型数据。...说明: a、如果赋值号两边运算对象类型不一致,系统会自动进行类型转换,转换规则:将赋值号右边表达式类型转换成赋值号左边变量类型, 例:int y=3.5; 在变量y中最终存储整数3

2K20

【必读】C语言基础知识大全

,用户输入普通十进制数字都要被计算机转换成二进制才能在计算机内部存储,同样计算机运算结果也为二进制,一般要将其转换成十进制数再输出给用户阅读,这种转换通常由计算机自动实现。...例:十进制数13转换成二进制值为1101,转换八进制为015,转换成十六进制为D. (2)将二进制、八进制和十六进制转换成十进制 乘积求和:将二进制每一位从低位高位(右边为低位,左边为高位).../运算分为两种情况: a、“除”左右两边都为整数时,所得结果必然是整数(注意:仅取整数部分,不是四舍五入) 比如:5/2值为2,不是2.5,1/2值为0。...b、“除”左右两边至少有一个是实型数据(即小数)时,所得结果为实型数据。...说明: a、如果赋值号两边运算对象类型不一致,系统会自动进行类型转换,转换规则:将赋值号右边表达式类型转换成赋值号左边变量类型, 例:int y=3.5; 在变量y中最终存储整数3

6.2K104

为什么有些小数在计算机中表示有误差?!

我们知道,任何数据在计算机中表示都是二进制格式,其中小数(浮点数)也是如此。正因为如此,存在一部分小数在计算机中表示会产生误差,至于为什么会产生误差,下面我来简单进行一下说明。...学过 Python 知道运算符(//)表示整除,运算符(%)表示求余,整除和求余同样也可以用于浮点数,逻辑和两个整数整除和求余一样。...分析问题 接下来我们尝试分析一下为什么浮点数在计算机中表示会有这样误差,在开始进行分析之前,我们首先必须知道,我们知道,任何数据在计算机中表示都是二进制格式。...因此一个浮点数要想存入计算机中首先必须得转换成二进制格式。其中浮点数转换成二进制需要分开来看,小数点左边是整数部分,运用除基取余法,小数点右边是小数部分,运用乘基取整法。...:我们选择从二进制转换成十进制入手。

1.3K30

java 中 BigDecimal 详解「建议收藏」

首先,我们先看一下,下面这个现象 那为什么会出现这种情况呢? 因为不论是float 还是double都是浮点数,而计算机是二进制,浮点数会失去一定精确度。...注:根本原因是:十进制值通常没有完全相同二进制表示形式;十进制二进制表示形式可能不精确。...BigDecimal(double) 创建一个具有参数所指定双精度值对象。 //推荐使用 BigDecimal(long) 创建一个具有参数所指定长整数对象。...特别说明一下,为什么BigDecimal(double) 推荐使用, 看上面代码运行结果,你就应该知道为什么推荐使用了,因为用这种方式也会导致计算有问题, 为什么会出现这种情况呢?...这是因为0.1无法准确地表示为 double(或者说对于该情况,不能表示为任何有限长度二进制小数)。这样,传入构造方法值不会正好等于 0.1(虽然表面上等于该值)。

73420

Java基础:运算符篇

(也就是第三个用法);3.在**(1.1)**处详解; - 1.表示负数;2.减法运算符 1.可以将正数转换为负数,或直接声明负数;2.减法运算,”-“两边必须都是整型 * 乘 两边必须都是整型 /...除 两边必须都是整型 0不可以作为除数进行运算会报错 % 取模运算(取余) 两边必须都是整型;取“%”前面的数除以后面的数余数 在**(1.2)**处详解; ++ 自增 自增分为前自增和后自增(i)...如果前面变量值大于后面变量值, 则返回 true。 2>3 false >= 大于或等于 只支持左右两边操作数是数值类型。如果前面变量值大于或等于后面变量值, 则返回 true。...4>=2 true < 小于 只支持左右两边操作数是数值类型。如果前面变量值小于后面变量值,则返回 true。 2<3 true <= 小于或等于 只支持左右两边操作数是数值类型。...; //移动后补位0 //移动后:00000011转换成10进制为3 //右移规律:每向右移动一位则相当于其十进制除以2 负数有符号右移计算-4>>2 首先我们需要取得-4补码 补码为反码+1

40910

JavaSE篇学习之路:(二)【变量&运算符】

用开表示某一个数,用关表示某一个数,然后使用不同开和关组合起来,就可以表示数据了。一个整数在内存中一样也是二进制二进制:每一个二进制数位用0,1 ;满2进1。...1.1进制转换 计算机中存储都是二进制数据,就需要用一些办法转化二进制与其它进制。...隐式类型转换 当在存储整数数据时,Java中所有的 整数默认 都是int类型。...注意事项: 如果对负数取模,可以把模数负号忽略记,如:5%-2=1。但被模数是负数就另当别论。 对于除号“/”,它整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。...true = false; 区别: “&”和“&&”区别:单与时,左边无论真假,右边进行运算;双与时,如果左边为真,右边参与运算,如果左边为假,那么右边参与运算。

1K30

Python数值类型

需要说明几点事项: python 3.x中整数区分一般整数和长整型整数,3.x版本中整数支持无穷精度 任何时候浮点数都是不精确。...整数除了十进制整数外,还可以写成二进制、八进制、十六进制甚至是其它进制整数,它们转换方式见后文 当一个整数以0b或0B开头,其后都是0、1时,默认识别为二进制整数 当一个整数以0o或0O...(截去小数部分),如int(3.5)=3 float():转换成浮点数,如float(3)=3.0 oct():十进制整数转换成八进制 hex():十进制整数转换成十六进制整数 bin():十进制整数转换成二进制...oct():十进制整数转换成八进制 hex():十进制整数转换成十六进制整数 bin():十进制整数转换成二进制 例如,将十进制64转换成二进制、八进制、十六进制整数。...指定base时,默认解释成10进制。 base值可以是0或2-36之间任意一个数,base=0也表示解释成10进制。 例如,将二进制数转换为十进制整数

2.1K30

Golang运算符

如果两边操作数都是 True,则为 True,否则为 False。 \ \ 逻辑 OR 运算符。如果两边操作数有一个 True,则为 True,否则为 False。 !...true} 位运算符 常见进制: 二进制:只有 0 和 1,Go语言中不能直接使用二进制表示整数; 八进制:0-7,以数字 0 开头; 十进制:0-9; 十六进制:0-9 以及 A-F,以 0X 开头,...每四位一组,转换成十六进制数即可; 八进制转换二进制: 将八进制数每 1 位转换成一个 3 位二进制数(首位 0 除外); 十六进制转二进制: 将十六进制每 1 位转换成对应一个 4 位二进制数即可...反码补码 对于有符号数而言,二进制最高为是符号位:0 表示正数,1 表示负数。 短除法进行进制转换 ? 十进制10-> 二进制: ? 二进制1011 -> 十进制 ?...想要详细了解其原理可以参考短除法相关说明 位运算符对整数在内存中二进制位进行操作。 运算符 描述 & 参与运算两数各对应二进位相与。

54620

「硬核JS」令你迷惑位运算

ES7指数操作符 等等,为什么叫操作符,因为它们都是符号构成。。。...32 位整数,再进行位运算操作,位运算计算完成后再将 32 位转为 64 位存储,整个过程就像在处理 32 位数值一样,所以我们了解位运算时,只需要关注这 32 位二进制整数就可以 这里我们可以看到,...231 题[1] 按位或 OR(|) 简述 按位或用符号 | 来表示,它也有两个操作数,按位或也是将两个操作数二进制每一位进行对比,只不过按位或是两边只要有一个 1 ,结果就是 1,只有两边都是 0...0 1 ^ 1 // 0 2 ^ 2 // 0 3 ^ 3 // 0 这是因为按位异或只在一位是 1 时返回 1,两位都是 1 或者两位都是 0 返回 0,两个相同数字二进制都是一致,所以都是...>>> 表示,和有符号右移区别就是它是三个大于号,它会将数值所有 32 位字符右移 对于正数,无符号右移会给空位补 0 ,不管符号位是什么,这样的话正数有符号右移和无符号右移结果都是一致 负数就不一样

1.7K20

3寒假专辑:一、C语言基础知识

用户标识符:基本上每年考,详细请见书上习题。 第四节:进制转换 十进制转换成二进制、八进制、十六进制。 二进制、八进制、十六进制转换成十进制。...第五节:整数与实数 1)C语言只有八、十、十六进制,没有二进制。但是运行时候,所有的进制都要转换成二进制来进行处理。(考过两次) a、C语言中八进制规定要以0开头。...1、算术表达式:+,-,*,/,% 考试一定要注意:“/” 两边都是整型的话,结果就是一个整型。3/2结果就是1. “/” 如果有一边是小数,那么结果就是小数。...3/2.0结果就是0.5 “%”符号请一定要注意是余数,考试最容易算成了除号。)%符号两边要求是整数。不是整数就错了。[注意!!!]...总处理方法:几乎所有的位运算题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。

53220

一、C语言基础知识

用户标识符:基本上每年考,详细请见书上习题。 第四节:进制转换 十进制转换成二进制、八进制、十六进制。 二进制、八进制、十六进制转换成十进制。...第五节:整数与实数 1)C语言只有八、十、十六进制,没有二进制。但是运行时候,所有的进制都要转换成二进制来进行处理。(考过两次) a、C语言中八进制规定要以0开头。...1、算术表达式:+,-,*,/,% 考试一定要注意:“/” 两边都是整型的话,结果就是一个整型。3/2结果就是1. “/” 如果有一边是小数,那么结果就是小数。...3/2.0结果就是0.5 “%”符号请一定要注意是余数,考试最容易算成了除号。)%符号两边要求是整数。不是整数就错了。[注意!!!]...总处理方法:几乎所有的位运算题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。

93720

CC++ 学习笔记一(整型浮点型)

从数据存储开始 计算机中数据存储在内存中,这就离不开各种数据类型在内存中编码方式。从最简单整型开始聊聊,整型数据在内存是如何编码以及必须要mark坑。...上面提及,有/无符号编码格式比较重要一个区别便是其最高位是否使用1来表示负数。...只是在日常使用场景中使用十进制,需要转换成计算机认识科学计数法二进制表示形式。 科学计数法中由符号位,指数位 ,有效数字位三部分组成。...这也浅出一个编程中经常遇到问题,浮点数为什么很多情况下并不是精确 浮点数为什么是不精确? 最直接原因,便是十进制小数位,在小数最后一位非5时,并不能精确转换成二进数。 如。...123.5 转换成二进制整数部分 123 = 2^6 + 2^5 + 2^4 +2^3 +2^0 = 0b11111001 小数部分 0.5 = 2^-1 123.5 转换成二进制 0b 1111001.1

1.8K00

位运算

位运算 ​ 任何信息在计算机中都是采用二进制表示,数据在计算机中是以补码形式存储,位运算就是直接对整数在内存中二进制位进行运算。...由于位运算直接对内存数据进行操作,不需要转换成十进制,因此处理速度非常快,在信息学竞赛中往往可以优化理论时间复杂度系数(常数优化)。 ​ C++提供了6种位运算符。...~ 取反 "~a"将整数各个二进制取反,即1变为0,0变为1。 << 左移 "a<<b"是指将整数a各个二进制位左移b位,高位丢弃,低位用0补齐。...1 二进制加减操作时,和十进制一样存在进位,借位特性。...以n个连续0/1代表第i个元素是否选中。 每个元素只有两种状态,可将其看作一个二进制位,所有元素选或状态组合可用0∼2n−10\sim 2^n-10∼2n−1对应数字二进制来描述。

86210

【Python系统学习02】数据类型与类型转换

换言之,带小数点数字即是浮点数。 比如下列代码中数字都是浮点数。...负责转换数据类型函数一共有3种:str()、 int()和float()。 1、str()函数 str()函数能将数据转换成其字符串类型,不管这个数据是int类型还是float类型,只要放到括号里。...Python里整数、浮点数和数学意义整数、小数是一样,它最重要作用是与运算符号结合,进行数学计算。...(二进制) 0.3(十进制) = 0.0100110011001100110011001100110011001100110011001101(二进制) 而在这个转化过程中存在误差,这样,就造成了我们与程序计算结果差异...然后,这俩二进制数通过二进制法则运算后,再通过复杂计算公式,将二进制结果转成十进制小数。 原网页地址 2019.12.31

1K30

走近mysql运算符|靠它就够啦

需要遵守如下规则: 1.如果等号两边都为字符串,则Mysql会按照字符串进行比较,其比较是每个字符ANSI编码是否相等。 2.如果等号两边都是整数。则会按照两个整数值来比较大小。...3.如果等号两边一个是整数,一个是字符串,则Mysql会将·字符串转换成数字进行比较。 4.如果等号两边有一个为NULL,则比较结果为NULL SELECT 1=2,1!...不等运算符不能判断NULL值,当任意一边出现NULL或者都是NULL时,返回值都是NULL 非符号类型运算符 IS NULL 为空运算符 判断值,字符串,表达式是否为空 IS NOT NULL 不为空运算符...AND优先级高于OR,因此在运算时,先对AND进行运算,得到结果再与OR进行运算 位运算符 位运算符是在二进制数上进行计算运算符。...位运算符会先将操作数变为二进制数,然后进行位运算,最后将计算结果从二进制变回十进制 运算符 作用 & 按位与(位AND) 直线(语法问题,无法输入) 按位或(位OR) ^ 按位异或(位XOR) ~ 按位取返

14120
领券