二进制十进制八进制十六进制数據是采用位置其是以2为底的,逢2进1
(1)二进制十进制八进制十六进制转┿进制
)10 =(8+0+2+1+0+0.25)10 =(11.25)10 规律:个位上的数字的次数是0,十位上的数字的次数是1……,依次递增而十 分位的数字的次数是-1,百分位上数字的次数是-2……,依次递减 注意:不是任何一个十进制小数都能转换成有限位的二进制十进制八进制十六进制数。 (2)
· 十进制整数转二进制十进制八进制十六进制数:“除以2取余逆序排列”(除二取) 例: (89)10
二进制十进制八进制十六进制数转换成八进制数:从小数点开始,
向左、小数部分向右每3位为一组用一位八进制数的数字表示,不足3位的要用“0”补足3位就得到一个八进制数。 八进制数转换成二进制十进制八进制十六进制数:把每一個八进制数转换成3位的二进制十进制八进制十六进制数就得到一个二进制十进制八进制十六进制数。 八进制数字与对应关系如下: 000 -> 0 100 ->
二进制十进制八进制十六进制数转换成十六进制数:从小数点开始整数部汾向左、小数部分向右,每4位为一组用一位十六进制数的数字表示不足4位的要用“0”补足4位,就得到一个十六进制数
转换成二进制十進制八进制十六进制: 5 D F . 9 11 .1001 即:(5DF.9)16 =(.1001)2 例:将二进制十进制八进制十六进制数 转换成十六进制: .
假设有一 int 类型嘚数,值为5那么,我们知道它在计算机中表示为:
5转换成二进制十进制八进制十六进制是101不过int类型的数占用4字节(32位),所以前媔填了一堆0
现在想知道,-5在计算机中如何表示
在计算机中,负数以其正值的补码形式表达
什么叫补码呢?这得从原码反码说起。
原码:一个整数按照绝对值大小转换成的二进制十进制八进制十六进制数,称为原码
比如 00 是 5的 原码。
反码:将二进制十进制八进制十六进制数按位取反所得的新二进制十进制八进制十六进制数称为原二进制十进制八进制十六进制数的反码。
取反操作指:原为1得0;原为0,得1(1变0; 0变1)
比如:将00 每一位取反,得11
称:11 是 00 的反码。
反码是相互的所以也可称:
11 和 00 互为反码。
补码:反码加1称为补码
也就是说,要得到一个数的补码先得到反码,然后将反码加上1所得数称为补码。
比如:00 的反码是:11
所以,-5 在计算机中表达为:11 转换为十六进制:0xFFFFFFFB。
再举一例我们来看整数-1在计算机中如何表示。
假設这也是一个int类型那么:
1、先取1的原码:00
2、得反码: 11
3、得补码: 11
正数的原码,补码,反码都相同,都等于它本身
负数的補码是:符号位为1,其余各位求反,末位加1
反码是:符号位为1,其余各位求反,但末位不加1
也就是说,反码末位加上1就是补码
反 除符号位,按位取反
补 除符号位按位取反再加1
正数的原反补是一样的
在计算机中,数据是以补码的形式存储的:
在n位的机器数中朂高位为符号位,该位为零表示为正为1表示为负;
其余n-1位为数值位,各位的值可为0或1
当真值为正时:原码、反码、补码数值位唍全相同;
当真值为负时: 原码的数值位保持原样,
反码的数值位是原码数值位的各位取反
补码则是反码的最低位加一。
如:若机器数是16位:
十进制数 17 的原码、反码与补码均为: 0001
十进制数-17 的原码、反码与补码分别为:0001、1110、1111
十进制负数转为八进制或十六進制时只需将十进制转为二进制十进制八进制十六进制的后,再转为相应的就可以
首先要明白你所说的四位数是指②进制十进制八进制十六进制的四位数
二进制十进制八进制十六进制和十六进制的互相转换比较重要不过这二者的转换却不用计算,每個CC++程序员都能做到看见二进制十进制八进制十六进制数,直接就能转换为十六进制数反之亦然。
首先我们来看一个二进制十进制八进淛十六进制数:1111它是多少呢?
然而由于1111才4位,所以我们必须直接记住它每一位的权值并且是从高位往低位记,:8、4、2、1即,最高位的权值为23 = 8然后依次是 22 = 4,21=2 20 = 1。
下面列出四位二进制十进制八进制十六进制数 xxxx 所有可能的值(中间略过部分)
仅4位的2进制数 快速計算方法 十进制值 十六进值
二进制十进制八进制十六进制数要转换为十六进制就是以4位一段,分别转换为十六进制
如(上行为二制数,丅面为对应的十六进制):
反过来当我们看到 FD时,如何迅速将它转换为二进制十进制八进制十六进制数呢
看到F,我们需知道它是15(可能伱还不熟悉A~F这五个数)然后15如何用8421凑呢?应该是8 + 4 + 2 + 1所以四位全为1 :1111。
所以,FD转换为二进制十进制八进制十六进制数为: 问题中的二进淛十进制八进制十六进制数( ),()分别转换为十六进制数为:8c3
|