开发者社区> 问答> 正文

二进制到底怎么算?不要复制,能通俗易懂点吗?求高手···

多来些例子啊··比如说11111010怎么转换成数字?

展开
收起
知与谁同 2018-07-22 11:05:25 2118 0
6 条回答
写回答
取消 提交回答
  • 社区管理员
    10+1 后面的平方
    2019-07-17 22:57:39
    赞同 展开评论 打赏
  • 杀人者,打虎武松也。
    电脑自带计算器就有
    2019-07-17 22:57:39
    赞同 展开评论 打赏
  • 云栖社区聚能聊、问答管理员~发福利、搞怪,八卦我来,论技术、发话题、写博客你上!
    按照位数 算是,, 个位是 2的0次方 十位是2的 1次方。。…… 然后相加 。二进制 1111 ,不就是 8+4+2+1 等于十进制的 15 么。。。 11111 就是 16+8+4+2+1 就是31 。自己好好算。。
    2019-07-17 22:57:39
    赞同 展开评论 打赏
  • 静静的看着你们
    先从右到左写下2的幂次(这里写了10位):
    1024 512 256 128 64 32 16 8 4 2 1

    然后把数字对应写在相应的数字下面,一个数字一位,向右对齐,前面不够的补0。例如11111010:

    1024 512 256 128 64 32 16 8 4 2 1
    0 0 0 1 1 1 1 1 0 1 0

    然后把上面和下面乘起来一加
    0*1024 + 0*512 + 0*256 + 1*128 + 1*64 + 1*32 + 1*16 + 1*8 + 0*4 + 1*2 + 0*1 = 250
    就算出来了。
    2019-07-17 22:57:39
    赞同 展开评论 打赏
  • 阿里云开发者社区运营负责人。原云栖社区负责人。
    ··比如说1111 1010怎么转换成数字。
    答:一共8个数位。设最低位为第0位,最高位为第7位
    1111 1010
    数位7654 3210
    十进制第n数位的数量级是10的n次方, 比如
    4321=4*(10^3)+3*(10^2)+2*(10^1)+1*(10^0)
    =4*1000+3*100+2*10+1*1

    二进制每n数位的数量级是2的n次方
    所以把原来的数写成
    1*(2^7)+1*(2^6)+1*(2^5)+1*(2^4)+1*(2^3)+0*(2^2)+1*(2^1)+0*(2^0)
    =128+64+32+16+8+0+2+0
    =250
    2019-07-17 22:57:39
    赞同 展开评论 打赏
  • 你做的操作是“二进制转换成十进制”,应使用“按权展开求和”方法。

    二进制的规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依次递增。

    例如(比如说11111010怎么转换成数字):
    1111 1010 =
    1*(2的7次方)+1*(2的6次方)+1*(2的5次方)+1*(2的4次方)+
    1*(2的3次方)+0*(2的2次方)+1*(2的1次方)+0*(2的0次方)= 250

    由上可以这么认为:1代表这一位有值,0代表这一位没值,把有值的位代表的十进制数相加就可以得出“二进制转换成十进制”的结果了。

    再举3个短例子:
    1101 = 1*(2的3次方)+1*(2的2次方)+0*(2的1次方)+1*(2的0次方)= 8 + 4 + 0 + 1 = 13

    0111 = 0*(2的3次方)+1*(2的2次方)+1*(2的1次方)+1*(2的0次方)= 0 + 4 + 2 + 1 = 7

    1111 = 1*(2的3次方)+1*(2的2次方)+1*(2的1次方)+1*(2的0次方)= 8 + 4 + 2 + 1 = 15

    这样上面所述的“二进制的规律”翻译成十进制表述就是:
    个位上的数字是1,十位上的数字是2,百位上的数字是4,千位上的数字是8,万位上的数字是16......,依次递增(每向左前进一位,所代表的值就乘以2),然后把位数上是1的值相加就是最后你需要的结果。
    2019-07-17 22:57:39
    赞同 展开评论 打赏
滑动查看更多
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Python第五讲——关于爬虫如何做js逆向的思路 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载