精华内容
下载资源
问答
  • 这篇文章主要介绍了十进制负数转换为二进制八进制、十六进制的知识分享,需要的朋友可以参考下 程序猿们或许对二进制都不陌生,二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码...
    这篇文章主要介绍了十进制负数转换为二进制、八进制、十六进制的知识分享,需要的朋友可以参考下

    程序猿们或许对二进制都不陌生,二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。但是很多人都会将二进制转换成整数,但是如何用二进制表示负数呢?有的人会说,在二进制前面加个负数符合。而计算机只能认识0 和 1,又怎么去加个额外的负数符号呢?于是我们就需要用0和1来表示负数。如果想要弄懂这个,我们需要先了解什么是二进制原码。

    原码是什么

    原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。

    简单直观;例如,我们用8位二进制表示一个数,+11的原码为00001011,-11的原码就是10001011

    原码不能直接参加运算,可能会出错。例如数学上,1+(-1)=0,而在二进制中00000001 + 10000001 = 10000010,换算成十进制为-2。显然出错了。

    二进制原码、补码和反码
    二进制原码、补码和反码

    十进制如何转换成二进制

    我们如何把十进制的-3,转换成二进制表示呢?首先我们将 -3 的绝对值 +3 转换成二进制,假设是为int类型(32位)的,那么二进制表示为:

    0000 0000 0000 0000 0000 0000 0000 0011

    负数转换成二进制分为3步:

    1、 首先将负数转换为对应的原码

    -3 的原码为(也就是+3转换成二进制后的字符串):

    0000 0000 0000 0000 0000 0000 0000 0011

    2、 再将原码的每一位做取反操作得到反码。

    取反操作:0变为1 、 1变为0;取反后的结果即为:

    1111 1111 1111 1111 1111 1111 1111 1100

    3、 将反码+1得到补码

    1111 1111 1111 1111 1111 1111 1111 1101

    现在用Windows自带的计算器来验证一下,Win+R 输入calc,将计算器改为程序员,选择双字(4字节,32位)

    打开Windows自带的计算器科学计算功能
    打开Windows自带的计算器科学计算功能

    在计算器中选择十进制,之后输入 -3 :

    Windows自带的计算器科学计算十进制下输入-3
    Windows自带的计算器科学计算十进制下输入-3

    再点击二进制转换,将十进制下的-3转换成二进制:

    转换十进制-3为二进制
    转换十进制-3为二进制

    二进制转十进制负数问题

    正常情况下,转换二进制到十进制都是没有任何问题的。而在类似 JavaScript / PHP 等整数类型中,一般 int /integer 都有位数限制,一般都是32位长度。也就预示着,这些语言中,整数是有最大值的,而32位最大整数极限为:2147483647,也就是二进制:

    01111111111111111111111111111111

    那么就很容易理解,32位二进制,第一位数为0的时候,就表示这个是一个正数,而如果是1,那么就表示这个是负数。

    32位二进制 11111111111111111111111111111001 十进制值是什么?

    11111111111111111111111111111001

    如上,二进制长度为32位,也就是这个整数是一个负数,先取反,得到反码:

    00000000000000000000000000000110

    反码+1,得到:

    00000000000000000000000000000111

    转换成十进制:7

    由于是负数,所以加个负号,转换成 -7

    趣味:32位二进制 1111111111111111111111111111001 十进制值是什么?

    这个是个比较有趣的,千万不要误导为上面这是一个负数,其实这个是个整数,因为这里只有31位,需要在前面加0,补足32位,变成:

    01111111111111111111111111111001
    十进制负数转八进制、十六进制

    负数转换成八进制、十六进制,只需在补码(二进制)的基础上,3位合成一位计算,或者4位合成一位计算

    -3的转换成二进制为:

    1111 1111 1111 1111 1111 1111 1111 1101

    八进制则将-3的二进制从右至左每3位为一个单元,不够三位用0补 即:

    011 111 111 111 111 111 111 111 111 111 101

    计算每一个单元,结果为:37777777775

    十六进制则将-3的二进制从右至左每4位合并为一个单元,即:

    1111 1111 1111 1111 1111 1111 1111 1101

    计算后为: FFFFFFFD

    转换十进制-3为八进制和十六进制
    转换十进制-3为八进制和十六进制

    转载于:https://www.cnblogs.com/wxb20/p/6033458.html

    展开全文
  • 如将72.45转换为十进制。如图1所示来看看十进制转八进制,有两种方法:直接法与间接法,先看直接的方法,与十进制转成二进制相同,咱们还是分整数部分转换和小数部分转换。 整数部分,除8取余法,每次将整数部分...

    先来看八进制如何转换成十进制。其方法与二进制转换成十进制差不多:按权相加法,即将八进制每位上的数乘以位权(如8,64,512….),然后将得出来的数再加在一起。

    如将72.45转换为十进制。如图1所示

    f31248e018a6c1b01f44daf3dbc5e111.png

    来看看十进制转八进制,有两种方法:直接法与间接法,先看直接的方法,与十进制转成二进制相同,咱们还是分整数部分转换和小数部分转换。

    整数部分,除8取余法,每次将整数部分除以8,余数为该位权上的数,商继续除以8,余数又为上一个位权上的数,然后以此类推一直下去,直到商为零,最后从最后一个余数向前排列就可以了,嗨,还是上图直观,如图2所示。

    76a8e5310b85a1d73d9c3578c0a9b1d6.png

    再看小数部分,与转二进制相同,这里是乘八取整法,也就是说小数部分乘以8,然后取整数部分,再让剩下的小数部分再乘以8,再取整数部分,……以此类推,一直乘到小数部分为零为止。例如0.13856,如图3所示。

    120777e3a5a345d43f9ee81f9df226a6.png

    小数部分乘以8,如果永远也碰不到零该怎么办?如图4所示(假设示范哦),那就根据位数要求进行“3舍4入”吧。

    a141e6cd6b1b5d9129303ffa070f07d9.png

    这个是直接的方法,还有一个间接的方法捏?就是先把十进制转换为二进制,然后再由二进制转换为8进制,例如将十进制478.0245转为八进制。

    先转为二进制为(转换方法这里就不再累述了哦,不知道的看上期介绍吧):

    (478.125)10=(111011110.001)2

    二进制再转为八进制为(转换方法这里就不再累述了哦,不知道的看上期介绍吧):

    (111011110.001)2=(736.1)8

    注意事项:

    八进制转十进制:整体顺序、小数点不变,个位乘8的0次方+十位乘8的1次方...=十进制得数,即可。小数部分从左到右乘8的负一次方开始,以此类推。

    十进制转八进制:整体顺序、小数点不变,整数部分除8,余数倒着从左向右排,小数部分乘8,整数自左向右排。

    展开全文
  • 二进制转换八进制很简单,即用三位二进制的数转换成一位八进制的数即可,下面详细给大家介绍1.在转换之前先来了解一些基础的知识,...2.二进制转换八进制的方法是,取三合一法,即从二进制的小数点分界点向小...

    e7f0aad6b870f59a61f69c3606c44133.png

    二进制转换成八进制很简单,即用三位二进制的数转换成一位八进制的数即可,下面详细给大家介绍

    1.在转换之前先来了解一些基础的知识,二进制和八进制的对应关系,左边二进制的000表示右边八进制的0,二进制的001表示八进制的1,后面以此类推,如图所示,记住八进制的最高位是7,二进制只有0和1,记住他们的对应关系因为稍后我们会用到的。

    c01ea406b0716f4b632c84db3faf7d15.png

    2.二进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点向小数点的左边开始取三位二进制的数转换为一位八进制的数,小数点左边的数不够三位的在数的最前面补零,小数点后面的不够三位则在数的后面补零,现随便出一个二进制的数01011100.01011演示分组,图中红色0就是不够三位补上去的。现在先分好组,如图所示。

    d638815d4e0ccbdeb34ca6d68c0d31c8.png

    3.分好组之后接下来就简单咯,对照步骤一的二进制和八进制的对应表,把三位转换成一位八进制数即可,小数点不变哦,最后得到的数就是八进制的数啦,如图

    d638815d4e0ccbdeb34ca6d68c0d31c8.png

    注意事项

    • 在向左取三位时,取到最高位,如果无法凑足三位,就可以在小数点的最左边补0,进行换算
    • 在向右取三位时,取到最低位,如果无法凑足三位,就可以在小数点的最右边补0,进行换算
    展开全文
  • 二进制八进制、十进制、十六进制之间转换一、十进制与二进制之间的转换(1)十进制转换为二进制,分为整数部分和小数部分①整数部分方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,...

    二进制、八进制、十进制、十六进制之间转换

    一、十进制与二进制之间的转换

    (1)十进制转换为二进制,分为整数部分和小数部分

    ①整数部分

    方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例:

    例:将十进制的168转换为二进制

    得出结果将十进制的168转换为二进制,(10101000)2

    分析:第一步,将168除以2,商84,余数为0。

    第二步,将商84除以2,商42余数为0。

    第三步,将商42除以2,商21余数为0。

    第四步,将商21除以2,商10余数为1。

    第五步,将商10除以2,商5余数为0。

    第六步,将商5除以2,商2余数为1。

    第七步,将商2除以2,商1余数为0。

    第八步,将商1除以2,商0余数为1。

    第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000

    (2)小数部分

    方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分

    为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数,下面举例:

    例1:将0.125换算为二进制

    得出结果:将0.125换算为二进制(0.001)2

    分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;

    第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;

    第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0;

    第四步,读数,从第一位读起,读到最后一位,即为0.001。

    例2,将0.45转换为二进制(保留到小数点第四位)

    大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好

    展开全文
  • java进制转换(十进制转八进制,十进制转二进制,十六进制转八进制) 这几天在复习C语言的数据结构栈和队列那一章的时候,看到利用栈的特性FILO实现的进制转换十分简洁 想起了java中实现栈的操作十分方便(不用...
  • python如何进行进制转换1、十进制转二进制(bin)首先我们看看怎么把一个十进制转化成二进制,我们可以使用python的内置方法 bin输出python 中二进制以ob开头2、十进制转八进制(oct)我们再看看十进制转化为八进制...
  • 1. Java中数字默认是十进制,二进制...在理解二进制和十进制转换后,对于一个整数,比如 7 ,我们知道二进制表示是 0111,但是一个负数的二进制怎么表示呢,你有想过 -8 怎么用二进制表示吗?在计算机中,存储的都是...
  • 这里详细的整理一下二进制八进制,十进制,十六进制之间的相互转换问题,由于篇幅较长,因此分开来写,后续部分后几天陆续上传,可以关注我。正题:其它进制如何转化十进制1.二进制转十进制 某数的二进制数值...
  • 1.二进制转八进制:以小数点为分界线,各自向左向右 每3位组成一组,不够位数的自动向高位或向低位补0,然后把每组的数字转换为八进制数就可以了,小数点的位置不变。 eg:(1101110.1011)2 分组后 (001)(...
  • 二进制八进制.txt

    2020-07-19 10:30:27
    本文件C++二进制转化八进制源代码,仅供各位了解学习进制之间的转换关系,让各位有个思路,我们都知道二进制转换八进制是3个数合一个来计算的,那么如果用户输入的只有两位数呢?这种情况该怎么算?最后一步...
  • 八进制:0,1,2,3,4,5,6,7 十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 其中F代表15 ...怎么转换的: 十六进制DCE5转化为二进制最简单,直接按8421折算。如D代表13,折算1101 ...
  • 一:我们首先介绍一下基数和位权这个概念:二:十六、二进制转换二.、十六进制三 十进制转换二.、十六进制四 :任意进制数转换为十进制教一:我们首先介绍一下基数和位权这个概念:1)基数:在进位计数法中,...
  • python如何进行进制转换1、十进制转二进制(bin)首先我们看看怎么把一个十进制转化成二进制,我们可以使用python的内置方法 bindec=10print bin(dec)输出0b1010python 中二进制以ob开头推荐:《python视频教程》2、十...
  • 关于进制数之间的转换,相信大家都知道怎么处理,也有很多文章,但是有些问题没有说明过,比如什么二进制八进制要取三合一法呢? 关于进制转换请参考以下文章: ...这里说明几点需要注意的地方: ...
  • 进制之间的相互转换

    2020-07-18 01:24:47
    在我们学习的过程中,接触过二进制八进制,十进制,十六进制,不过这些进制是怎么相互转化的呢?咱们一起来看一下 首先,了解一下各个进制, 二进制由0和1组成, 八进制是由0~7组成, 十进制就不用说了,大家都很...
  • 进制转换的疑问?

    2006-04-14 15:02:00
    进制转换的疑问有时在论坛上会看见有人问如何在C中将十进制转换为二进制、十六进制、八进制之类的,感觉非常的奇怪,在C中根本没有必要转换,数据在内存中始终是以二进制的形式存在的,只不过是输出的时候可以选择...
  • 原文地址:怎么使用JavaScript进行进制转换作者:青竹JS ...将任意进制字符串转换为十进制,如二进制八进制,十六进制, 第二数数不写即为最常用的转换为整型十进制; parseInt("11", 2); // 3 2进制转10进制 par
  • 不同编译环境可能会有不同(有些编译器可能不支持某些前后缀的转换)但一般来讲:1.0B 表示二进制的前缀 这个它是以ob开头后面的数字都是二进制数 即:全部都是0和1 例如:0B10101010111 或者 0b10101010111 2.0O 表示...
  • 昨天看汇编原理这本书时,还是遇到了基础中的基础-------进制数,包括二进制八进制、十进制。就想着简单的记录一下。 这篇文章呢,不记录进制的转换只记录怎么用不同的进制数(shu三声)数(shu四声),什么呢,...
  • 掩码值的计算方法: ...4、将得到的二进制值再转换八进制,即权限 例1: umask(显示、设置文件的缺省权限命令) 022 文件默认最大权限:6 6 6 二进制为:110 110 110 umask值 0 2 2 二进制为: 000 010 01...
  • 什么学习Python?通过什么途径学习的Python?...简述解释型和编译型编程语言?...通过代码实现如下转换二进制转换成十进制:v = “0b1111011”十进制转换二进制:v = 18八进制转换成十进制:...
  • 注意:如果不懂怎么转换十进制和二进制,可以借用windows的计算器来辅助。 图5.11 228的十进制和二进制表现  把 11100100 整体往右边挪动一位,就会变为01110010。如果觉得不好理解?请这么想,有一条火车轨道...
  • ASCII 转义字符(Escape ...将多个位数的二进制与十进制进行转换就可以达成这个目标,这其中又衍生了八进制以及十六进制。 除了数字,字母、汉字又怎么标识呢? 这一整天就需要一个规则和标准了。ASCII (Ameri
  • 八进制数第0位的权值为8的0次方 设有一个二进制数:0110 0100 第1位的权值是2的1次方…… 所以 所以11即B) 结果为:5BB 四、二进制转换为十进制数 二进制数第0位的权值是2的0次方 所以11即B) 1011 = 8+2+1 = 11...
  • 查看数据类型type print(type(1)) print(type(1.0)) print(type('Waoooo')) 1、整型 ...bin 是向二进制转换 ob1010 oct 是向八进制转换 Oo12 ...思考:怎么将其他禁止转换成10进制 ...#将十进制数转换为其他进制数 print
  • c语言初学笔记2019/10/5

    2019-10-05 21:05:38
    基本数据类型复习 (今天看了第二章基本类型数据的ppt,算是重新复习一次,温故而知新,也发现了一些问题之前还没弄...(2)二进制和十进制的转换 八进制和十进制的转换 十六进制和十进制的转换 (3)变量的赋...
  • 知识点:byte、short、char在表达式中会自动提升int 之前做一个应用时,打印...首先int强制类型转换成byte,直接取低8位,这个大家可以自己试试,不管int值是多少,转化后的byte二进制与int的第二进制一样。...

空空如也

空空如也

1 2 3
收藏数 51
精华内容 20
关键字:

二进制怎么转换为八进制