本文介绍C#中位字节等知识

1. 位(bit)

位(bit)有叫做比特,指二进制中的一位,是二进制的最小信息单位。
bit也被称作小b,用b表示。

2. 字节(bytes)

8位表示一个字节。
由以下公式可以算出一个字节最多表示256

28=25628=256

但实际上不会是256,8个字节最多表示:

111111

这个值是

27+26+25+24+23+22+21+1=25527+26+25+24+23+22+21+1=255

这也说明了以下内容:

byte.MaxValue == 255;

还需要注意的是,byte是无符号的,因此byte的范围是从0-255

这个byte也被称做大B,用B表示。

这个byte也是C#里面的byte。

3. KB和kb

上面说了B和b,再插一句KB和kb的区别。
Modem和访问Internet的其他设备的传输速率通常是以“Kbps”(千比特/秒)来计量,而其他的数据传输速率,诸如IDE或SCSI总线的传输速率,则通常以“KBps”(千字节/秒)或“MBps”(兆字节/秒)为单位。
这两个是不一样的。
因为8位表示一个字节,所以可以理解

B=8bB=8b


再我们安装宽带的时候,说10M,指的是10mb,实际上的带宽是:

10mb/8=1.25MB10mb/8=1.25MB

4.sbyte

sbyte不同于byte的地方在于,sbyte是有符号的,也就是说,sbyte能表示负数。其最高位是符号位,所以sbyte只有7位能表示数值。
其最小值应该是:

128−128


其最大值应该是:

26+25+24+23+22+21+1=12726+25+24+23+22+21+1=127

关于为什么是-128而不是127,这篇文章讲解的很详细,都是补码、反码那套知识。

5.short ushort int uint long ulong

short

short是16位的有符号整数,也就是2字节的整数。
因为short有符号位,所以只有15位表示数值。其范围应该是

3276832767−32768−−32767


其他与short道理相同,不解释。

6. char

char占用几个字节呢?
在C#里面采用unicode,2个字节(16位)来表示一个字符。