口算十进制转二进制小窍门

yufei       5 年, 10 月 前       5387

每 8 位 二进制,各位从左到右对应的权值分别是 128,64,32,16, 8,4,2,1

即 2 的 (n-1) 次方,n 是从右到左当前位的位数

因此随便拿一个 256 以内的数给你化为二进制,都可以分解为权值相加。对应的权值的位值为 1,其他位为 0 即可

比如 88 可以分解为 64 + 16 + 8 ,因此这几个权值对应的位应该是 1,其他位为 0

转化为二进制即是 1000 1001

解释

我们都知道,一个字节 ( Byte ) 由 8 位二进制组成

我们也知道,一个 Byte 所能表示的最大整数为 256 ,转成二进制,就是 11111111

那么,我们就可以得出以下拆解

256 = 1 * 2^7 + 1 * 2^6 + 1 * 2^5 + 1 * 2^4 + 1 * 2^3 + 1* 2^2 + 1* 2^1 + 1 * 2^0
    = 1 * 128 + 1 * 64 +  1 * 32  + 1 * 16  + 1 * 8   + 1 * 4 +  1 * 2 +  1 * 1

然后呢,我们可以知道,对于 256 范围以内的任意值,都可以拆解成 1 2 4 8 16 32 64 128 相加

比如

88  = 64  + 16 + 8 
    = 0 * 128 + 1 * 64 + 0 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 0 * 2 + 0 * 1
55  = 32  + 16 + 4  + 2 + 1
    = 0 * 128 + 0 * 64 + 1 * 32 + 1 * 16 + 0 * 8 + 1 * 4 + 1 * 2 + 1 * 1
185 = 128 + 32 + 16 + 8 + 1
    = 1 * 128 + 0 * 64 + 1 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 0 * 2 + 1 * 1

然后,我们只要把这些 01 按照从左往右的顺序放在一起就可以了

88  = 64  + 16 + 8           = 01011000
55  = 32  + 16 + 4  + 2 + 1  = 00110111
185 = 128 + 32 + 16 + 8 + 1  = 10111001

所以,是不是很简单,转换十进制为二进制简直就可以口算了

目前尚无回复
简单教程 = 简单教程,简单编程
简单教程 是一个关于技术和学习的地方
现在注册
已注册用户请 登入
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.