java十进制与二进制转换的数学原理
RT, 我知道怎么转换, 就是想知道为什么要这样转, 其中的数学原理是什么?
例如: 5的二进制转换方法为 5除以2 得余数1 然后再用商值2继续除以2 得余数0 然后除尽了商值为1 所以 最后得到二进制值为 100
100的十进制转换方法为 (1 x 2^2) + (0 x 2^1) + (0 x 2^0) = 4 + 0 + 1 = 5
为什么要这样转换呢, 是怎样的数学原理?
还有 java byte的取值范围为 -2^7 ~ 2^7-1 int 的取值范围为 -2^31 ~ 2^31-1
比如-128 ~ 127, 127的二进制表示为 0 111 1111, 根据它是如何推到出2^7-1的呢?
唉!~ 我是新手, 数学还不好, 只知道方法和结果, 根本不理解原理, 请高手帮忙解答一下, 谢谢了.
首先要想清楚什么是 10进制
逢10进1 这就是 10进制
2进制逢2进1
也就是说 对于10进制,每个位上最多只能有10个不同的数字
而2进制 每个位上最多只能有两个不同的数字
、
所以 我们常用的10进制 ,
对于一个数字 比如 321
那么就是 3* 10 ^2 + 2 * 10^1 + 1* 10 ^0 = 321
这个公式里面的 10 就是 10进制的单位。
所以 对于 2进制100 也就是 1* 2^2 + 0 * 2^2 + 0 * 2^0 = 5D
看看多项式的展开把 高等数学里面这一块应该有比较深入的讲解了。
对于计算机中的位
可以这样理解 每个电容可以有两种状态 有电 和 没有电
那么用0 表示没有电 用1表示有电 这样的话刚好就是一个2进制了
所以电脑中用2进制来表示数据。
所谓几进制就是,数到几进位的意思。因为人们惯性思维是按照10进制来的,所以楼主就迷糊了。
现在不管几进制,就来数数吧,比如楼主想数100个数
不管表现形式如何,一定数了100次是真的吧。