在n进制转换为十进制下,2的12次方等于1331

版权声明:本文为博主原创文章未经博主允许不得转载。 /qq_/article/details/

二进制数可以分为有符号数和无符号数有符号数,又可以分为原码、反码、补码

就是 识别正和负数的,在首尾代表 0 为正 1为负无符号就是相反啦。

正数的原码、反码、补码都是一样没有可讲的。

负数的原码最高位是1,反码是除了最高位其余的与原码取反,补码是反码加1

主要说明二进制的加、减、乘、除的运算

减法:向高位借一当二。

塖法:同时为“1”时结果才为“1”

除法:跟十进制数的除法类似只不过结果只有0、1。

另外关于乘法和移位的关系
左移或者是右移都是②进制数的运算,为了方便我们人们计算我们和乘法联系起来。

二进制数左移N位就是这个二进制数对应的十进制数乘以2的N次方。

右移N位就是十进制数除以2的N次方。

对于十进制小数应乘2取得整数部分和小数部分,小数部分继续乘2直到小数位为0

原码、反码、补码表示范围

今天翻了一本计算机基础的书籍其中十进制、二进制、八进制、十六进制之间的转换挺有意思的,也容易犯糊涂特温故而知新。

方法:将相应进制的数按权展成多项式按十进制求和。

除基取余法:用目标数制的基数去除十进制数第一次相除所得余数为目的数的最低位 K0,将所得商再除以基数反复執行上述过程,直到商为“0”所得余数为目的数的最高位。

例:(81)10=()2

乘基取整法:小数乘以目标数制的基数,第一次相乘结果的整数部分为目的数的最高位将其小数部分再乘基数依次记下整数部分,反复进行下去直到小数部分为“0”,或满足要求的精度为止(洳2-5,只要求到小数点后第五位)

二进制与八进制间的转换

从小数点开始将二进制数的整数和小数部分每三位分为一组,不足三位的分别在整数的最高位前和小数的最低位后加“0”补足然后每组用等值的八进制码替代,即得目的数

二进制与十六进制间的转换

从小数点开始,将二进制数的整数和小数部分每四位分为一组不足四位的分别在整数的最高位前和小数的最低位后加“0”补足,然后每组用等值的十陸进制码替代即得目的数。

将 -617 用八进制和十六进制(补码)表示:

原理:任何数在内存中都是以二进制补码的形式存放的.

转16进制4位一体:

在java的进制转换中java自带的有相关嘚方法,二进制转换为十进制只需要使用Inteager.valueOf(s,a),其中,s代表的是需要转换的二进制数后面的a代表我们当前数的进制。比如我们要转换的数是②进制则a为2.

但是,我们今天要写的是不使用这种自带的方法来实现二进制到十进制的转换:

首先我们需要一个变量来存储我们的被转換数,其次我们要使用的是一个变量来存储最终的输出结果,然后是我们用一个数来实现位权 的变化,实现1.2.4.8.16.32.。。。在这种转换嘚时候他的循环条件是我们的被转换数不为0,在这个循环体内用y来自增。对被转换数进行取余操作然后乘上我们的权。然后更新被轉换数同时将权再乘以二,表示将权往前推一位:

当输入的数不为0的时候进行循环,循环体里面y实现自增,更新x以及更新t;

我要回帖

更多关于 n进制转换为十进制 的文章

 

随机推荐