Skip to content
On this page

二进制

当我们使用计算机或数字电子设备时,我们经常使用二进制数来表示数字和字符。二进制是一种计数系统,它仅使用 0 和 1 两个数字来表示数值。在二进制系统中,每个数字位都只能是 0 或 1,每个数字位的权重是 2 的幂,从右向左依次增加。

例如,以下是一个8位二进制数:10110101,其权重分别为 1、2、4、8、16、32、64 和 128。要将二进制转换为十进制,我们将每个数字位乘以其权重,然后将它们加起来。对于上述二进制数,计算如下:

1×128 + 0×64 + 1×32 + 1×16 + 0×8 + 1×4 + 0×2 + 1×1 = 181

因此,二进制数 10110101 表示的是十进制数 181。

二进制还可以表示其他数据类型,例如,字符可以使用 ASCII 码表中的二进制编码来表示,图像、音频和视频文件也可以使用二进制编码。在计算机中,所有的数据都是以二进制形式存储和处理的。

理解二进制很重要,因为它是计算机科学中的基础知识之一。当我们编写程序或进行计算时,需要使用二进制来与计算机进行交互和通信。

有符号 无符号

在计算机中,数值可以表示为有符号或无符号。在无符号表示中,所有的数字位都可以表示为非负数(0 或正整数)。在有符号表示中,最高位(最左边的数字位)表示符号位,0 表示正数,1 表示负数。剩下的数字位用来表示数值,可以是正数或负数。

对于无符号二进制数,最高位没有符号位,所有的位都表示为非负数。例如,8位二进制数 10110101 表示的是无符号整数,其十进制值为 181。

对于有符号二进制数,最高位表示符号位。对于 8 位的有符号二进制数,最高位为符号位,剩下 7 位表示数值。最高位为 0 表示正数,为 1 表示负数。例如,有符号二进制数 10000001 表示的是 -127,其十进制值为 -127。

不同的数据类型可以使用有符号或无符号表示。例如,在 C 语言中,char 类型默认被视为有符号,而 unsigned char 类型被视为无符号。在使用这些数据类型时,我们需要注意符号位的影响,以确保正确的数值表示。

在有符号二进制数中,最高位表示符号位,0 表示正数,1 表示负数。剩下的数字位用来表示数值,可以是正数或负数。

对于 8 位有符号二进制数,最高位为符号位,其余 7 位用来表示数值。对于 10000001 这个 8 位有符号二进制数,最高位为 1,表示负数。剩下的数字位为 0000001,表示 1 的二进制数。因此,这个二进制数表示的是 -1。但是在计算机中,有符号二进制数的表示是采用补码的方式来表示的。在补码表示中,正数的补码与原码相同,负数的补码是将其绝对值的原码按位取反后加 1。

对于有符号 8 位二进制数,-1 的补码可以这样计算:

取其绝对值的原码:0000001 将其按位取反:1111110 将取反后的结果加 1:1111111 因此,-1 的补码为 1111111。再将其转换成十进制数,就是 -127。所以 10000001 表示的是 -127。

二进制 转 十进制

将二进制数转换为十进制数的方法有很多,以下是其中的一些方法:

直接加权法:对于一个二进制数,将其每一位上的数字与对应的权值相乘,再将这些积相加,得到其十进制数。例如,对于二进制数 10110101,其权重分别为 1、2、4、8、16、32、64 和 128。将每个数字位乘以其权重,然后将它们加起来,得到它的十进制数为: 1×128 + 0×64 + 1×32 + 1×16 + 0×8 + 1×4 + 0×2 + 1×1 = 181

因此,二进制数 10110101 表示的是十进制数 181。

除 2 取余法:将二进制数从右往左依次除以 2,将每次得到的余数从右往左排列,就是其十进制数。例如,对于二进制数 10110101,从右往左依次除以 2,得到的余数为 1、0、1、1、0、1、0、1。将这些余数从右往左排列,得到的就是其十进制数 181。

移位法:将二进制数从右往左依次左移,将每次得到的结果相加,得到其十进制数。例如,对于二进制数 10110101,从右往左依次左移,得到的结果分别是 1、3、6、13、26、52、105、210。将这些结果相加,得到的就是其十进制数 181。

这些方法都可以将二进制数转换为十进制数,具体使用哪种方法取决于个人喜好和情况。

二进制 has loaded