zoukankan      html  css  js  c++  java
  • 7. 进制转化的原理

    用0开头的表示该整数是八进制表现形式,如:0254;用0x开头的表示该整数是十六进制表现形式,如:0xAC;

    对于八进制数0254,要转换成十进制数,就是以各个位上的数值乘以基数8的(n-1)次方,即

       0254=4*8^0 + 5*8^1 + 2*8^2=4+40+128=172

    所以八进制数0254的十进制表现形式是172。 

    同理,二进数和十六进数要转化为十进数,都是以各个位置上的数值乘以该进制数基数的(n-1)次方后,相加得到和,即为该进制数的十进制表现形式。

    若是要由十进制转化为二进制,则是用十进制数除以2(即该进制的基数),依次取余,直到最后不能整除该基数为之,从最后一个余数依序往前,得到的就是该进制数的二进制表现形式。

    整个思路可以参考下图:
    图片 而二进制数如何快速转化为八进制/十六进制呢?

    二进制数要转化为八进制,就是将二进制数从尾往前数,3个位为1组,最后不足3个位的在前面加0补足。然后每组转化为十进制形式后依序组合,就能得到该二进制数的八进制表现形式。

    同理二进制要转化为十六进制,就是将二进制数从尾往前数,4个位为1组,最后不足4个位的在前面加0补足。然后每组转化为十进制形式后依序组合,就能得到该二进制数的十六进制表现形式。
    负数的二进制其实就是该负数的正数的二进制形式取反之后,与二进制数1(0001)相加得到的二进制形式。如下图:
    图片
    负数的二进制形式的最高位是1.


  • 相关阅读:
    JavaScrip--JS面向对象
    JavaScrip-Screen对象
    JavaScrip--Location对象
    安卓奇葩问题之:运行OK,打包安装崩溃(原因是:代码不规范导致编译出错)
    安卓奇葩问题之.so库加载不了
    Fresco简单的使用—SimpleDraweeView
    安卓奇葩问题之SQLite条件查找不到数据
    打包时动态指定一些值
    安卓开发:DateUtils
    SAX解析xml文件
  • 原文地址:https://www.cnblogs.com/youyuanjuyou/p/8099639.html
Copyright © 2011-2022 走看看