正在加载图片...
在C/C++中,很多计数的习惯都是从0开始,所以,在你看明白上面那行内容后,让我 们立刻改口换成下面的说法,以后我们只用这种说法 二进制数:第0位数表示几个1(20),第1位数表示几个2(2),第3位数表示几 个4(2),第4位数表示向个8(2)…… 按照这种说法,我们可以发现,从右向左数,第n位数的权值=2的n次方 进制各位权值的计算方法:第n位权值=2 下表详细地表示2进制数:1111111是如何逐位计算,累加得到10进制的值 25=3 合计 进制 l0进制 8 255 上表表示了这么一个计算过程*表示乘号): 1*22+1*26+1*25+1*24+1*23+1*2+1*24+1*2°=255 (顺便说一句,如果你忘了2等于多少有点迟疑,请复习一下初中的数学知识:任何数 的0次方都等于1) 结果是 111111255(d) (为不了互相混淆,我们在书中常用(b)来表示前面的数是2进制的,而(d)则表示该数 是10进制数。同样地,另有8进制数用(o)表示,16进制用(h)表示。不过记住了,这只是 在书中使用,在程序中,另有一套表示方法。) 以前我们知道1个字节有8位,现在通过计算,我们又得知:1个字节可以表达的最大的 数是255,也就是说表示0255这256个数。 那么两个字节(双字节数)呢?双字节共16位。111111个数并不大, 但长得有点眼晕,从现在起,我们要学会这样来表达二制数: 1111111111,即每4位隔一空格 双字节数最大值为 1*2+1*+1*2+ +1*2+1*2+ +1*2+1*2 2°=65535在 C / C++中,很多计数的习惯都是从 0 开始,所以,在你看明白上面那行内容后,让我 们立刻改口换成下面的说法,以后我们只用这种说法: 二进制数:第 0 位数表示几个 1 (2 0),第 1 位数表示几个 2(2 1),第 3 位数表示几 个 4(2 2),第 4 位数表示向个 8(23 )…… 按照这种说法,我们可以发现,从右向左数,第 n 位数的权值 = 2 的 n 次方。 二进制各位权值的计算方法: 第 n 位权值 = 2n 下表详细地表示 2 进制数:11111111 是如何逐位计算,累加得到 10 进制的值: 第几位 7 6 5 4 3 2 1 0 权值 2 7=128 2 6=64 2 5=32 2 4=16 2 3=8 2 2=4 2 1=2 2 0=1 合计 2 进制 1 1 1 1 1 1 1 1 10 进制 128 64 32 16 8 4 2 1 255 上表表示了这么一个计算过程(*表示乘号): 1 * 27 + 1 * 26 + 1 * 25 + 1 * 24 + 1 * 23 + 1 * 22 + 1 * 21 + 1* 20 = 255 (顺便说一句,如果你忘了 2 0 等于多少有点迟疑,请复习一下初中的数学知识:任何数 的 0 次方都等于 1) 结果是: 11111111(b) = 255 (d) (为不了互相混淆,我们在书中常用(b)来表示前面的数是 2 进制的,而(d)则表示该数 是 10 进制数。同样地,另有 8 进制数用(o)表示,16 进制用(h)表示。不过记住了,这只是 在书中使用,在程序中,另有一套表示方法。) 以前我们知道 1 个字节有 8 位,现在通过计算,我们又得知:1 个字节可以表达的最大的 数是 255,也就是说表示 0~255 这 256 个数。 那么两个字节(双字节数)呢?双字节共 16 位。 1111111111111111,这个数并不大, 但长得有点眼晕,从现在起,我们要学会这样来表达二制数: 1111 1111 1111 1111,即每 4 位隔一空格。 双字节数最大值为: 1 * 215 + 1 *214 + 1* 213 + 1 * 212 + 1 * 211 + 1 * 210 + …… + 1 * 22 + 1 * 21 + 1* 2 0 = 65535
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有