编程中的二进制问题!请高手帮忙!

来源:百度知道 编辑:UC知道 时间:2024/06/01 00:04:06
正在自学java,不过只是想先学学基础,下次上课的时候就会懂的多一点,但昨天看到进制方面的问题,我一下子理解不了,不知道进制之间是怎么计算的,怎么转换的,怎么写的?
请高手帮帮忙,祥细一点的!
我在百度里也搜了,那些只是单纯的介绍进制的意思跟起源...
所以求祥细的问题!
小弟也只有17分了 先下了5分吧!如果有帮助的话定会加10分的!

二进制,逢二进一。
这样的话,你先记住几个特别的二进制数:
1 = 2^0
10 = 2^1
100 = 2^2
1000 = 2^3
分别是十进制的1,2,4,8.
这样的话,对于一个任意的4位二进制数,
你可以很快的知道它的十进制值了。

比如 1101

就是
1000
+ 100
+ 1
--------------
也就是 8+4+1= 13了。 是不是很简单呢?
上面就是二进制向十进制的转换。

下面说一下位运算。
比如 十进制的 6&3

也就是
110
& 011
--------
010
解释一下,位与操作,就是上下两个都是1的时候结果位才是1。
否则为0。

这样结果是010,也是十进制的2。

下面说一下位移,其实非常好理解的。
比如要对7右称一位。
过程是怎么出来的呢?

假设你的内存是8位的。
也就是对于7来说,内存里的实际是
00000111
这样右移一位,就变成
00000011
了。
答案是多少,你肯定一眼看来出了。
但如果是左移一位呢?
那就是
00001110
了。
现在是十进制的14了。

看出关系来了么?右移一位,好像被2除了一次,
左移一位,好像乘2一次。

其实,这种以2为基数的算法,在C里应用很多的。

好了,说到这里,LZ能理解的话,就已经可以应付你面对的二进制问题了。

毕竟JAVA是高级语言(面向对象),这种位操作的机会还是相对少的。

了解即可。

主要是10进制转2进制吧
2进制转8和16进制很简单
二进制--