同一个二进制数1000 0010B在理解为: 无符号数、有符号数原码、有符号数反码、有符号数补码、BCD码 时对应的十进制数值分别是多少?你是如何理解待此现象的?
无符号数:1000 0010B = 130
有符号数(原码):1000 0010B = -130
有符号数(反码):1000 0010B = -129
有符号数(补码):1000 0010B = -129
BCD码:1000 0010B = 82
这个现象可以通过不同的解释方式来理解。在无符号数中,二进制数的每一位都代表2的幂次方,从右到左依次增加。因此,1000 0010B表示的是12^7 + 02^6 + 02^5 + 02^4 + 02^3 + 02^2 + 12^1 + 02^0 = 128 + 2 = 130。
对于有符号数(原码),最高位为符号位,0表示正数,1表示负数。因此,1000 0010B表示的是-12^7 + 02^6 + 02^5 + 02^4 + 02^3 + 02^2 + 12^1 + 02^0 = -128 + 2 = -130。
有符号数(反码)和有符号数(补码)是为了解决原码的符号位造成的问题。在反码中,正数的表示方式和原码一样,负数的表示方式是将原码中除符号位外的所有位取反。因此,1000 0010B在反码中表示的是-12^7 + 12^1 + 02^0 = -128 + 2 = -126。而在补码中,负数的表示方式是将反码中的每一位取反后再加1。因此,1000 0010B在补码中表示的是-12^7 + 12^1 + 02^0 = -128 + 2 = -126。
BCD码是用来表示十进制数的编码方式,每四位二进制表示一个十进制数位。因此,1000 0010B表示的BCD码是8十进制位和2个十进制位,即82。
原文地址: https://www.cveoy.top/t/topic/i10G 著作权归作者所有。请勿转载和采集!