第2个回答 2008-06-23
二进制是计算技术中广泛采用的一种数制。二进制数是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。二进制数也是采用位置计数法,其位权是以2为底的幂。例如二进制数110.11,其权的大小顺序为22、21、20、2-1、2-2。对于有n位整数,m位小数的二进制数用加权系数展开式表示,可写为:
(N)2=an-1×2n-1+an-2×2n-2+……+a1×21+a0×20+a-1×2-1+a-2×2-2
+……+a-m×2-m=
式中aj表示第j位的系数,它为0和1中的某一个数。
二进制数一般可写为:(an-1an-2…a1a0.a-1a-2…a-m)2。
现在人们日常生活中所不可或离的十进位值制,就是中国的一大发明。至迟在商代时,中国已采用了十进位值制。从现已发现的商代陶文和甲骨文中,可以看到当时已能够用一、二、三、四、五、六、七、八、九、十、百、千、万等十三个数字,记十万以内的任何自然数。这些记数文字的形状,在后世虽有所变化而成为现在的写法,但记数方法却从没有中断,一直被沿袭,并日趋完善。十进位值制的记数法是古代世界中最先进、科学的记数法,对世界科学和文化的发展有着不可估量的作用。正如李约瑟所说的:“如果没有这种十进位制,就不可能出现我们现在这个统一化的世界了。”
十六进制
Hex number system
是计算机中数据的一种表示方法.同我们日常中的十进制表示法不一样.它由0-9,A-F,组成.与10进制的对应关系是:
0-9对应0-9;
A-F对应10-15;
N进制的数可以用0---(N-1)的数表示超过9的用字母A-F
例如:
10进制的32表示成16进制就是:20
16进制的32表示成10进制就是:3×16^1+2×16^0=50
6.1 为什么需要八进制和十六进制?
编程中,我们常用的还是10进制……毕竟C/C++是高级语言。
比如:
int a = 100,b = 99;
不过,由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。
但,二进制数太长了。比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是:
0000 0000 0000 0000 0110 0100
面对这么长的数进行思考或操作,没有人会喜欢。因此,C,C++ 没有提供在代码直接写二进制数的方法。