一、转化方式
1、原码
将数值转换为二进制时,需要将其从右向左表示,并在位数不足时补0。
符号位用于表示一个数字的正负,通常用0表示正数,用1表示负数。
原码不能运算
福利:2024年毕业的初中生、高中生及准备考研的同学,可以免费获取学科资源网部分学习资源(网址https://www.yingyanwk.com)。
2、反码
正数,反码=原码
负数的反码是指将其原码中除符号位外的所有位取反。
3、补码
正数:补码=原码
负数的补码是由其反码加1得到的。
4、移码
正数、负数:移码=反码 首符号位 取反。
5、示例:
对于数值6和-6,它们的一个字节(8位)的原码、补码、反码、移码如下:
数值6:
- 原码:00000110
- 补码:00000110
- 反码:00000110
- 移码:00000110
数值-6:
- 原码:10000110
- 补码:11111010
- 反码:11111001
- 移码:11111001
数值 6 -6
新码:0000 0110 (不变) 1000 0110
反码的计算规则是:符号位保持不变,其他位取反。根据这个规则,原来的反码"00000110"的符号位是0,保持不变,其他位取反后得到的新的反码是"11111001"。
根据给定内容,新的创作如下:
补码:0000 0110 (不变) 1111 1010 (反码+1,符号位也进位,如下图所示)
移码:0111 1001 (反码首符号位取反) 1000 0101 (反码首符号位取反)
原码是最直接的方法,即用最高位表示符号,其余位表示数值绝对值的二进制数值。
反码是将原码中正数保持不变,负数将二进制数值按位取反得到的数。
补码是在反码的基础上加1,其特点是可以用来进行加法运算,并且只有一个零表示正零和负零。
移码是在补码的基础上整体向左移一位,最高位用来表示符号位,1代表负数,0代表正数。
这些方式都是计算机内部在进行有符号整数运算时使用的表示方法。
二、取值范围
补码是由一个固定范围内的整数值组成的编码系统,其中一半的值用于表示负数,另一半用于表示零和正数。以8位补码为例,它可以表示范围从-128到127的整数值,其中-128表示为1000 0000,而127表示为0111 1111。
重新编写:
8位补码能够表示范围从-128到127的整数值。
反码是一种用于表示有符号整数的编码方法。在 n 位二进制数中,反码可以表示从 -(2^(n-1) - 1) 到 2^(n-1) - 1 的整数范围。例如,在一个8位二进制数中,反码可以表示范围从 -127 到 127 的整数。
补码是一种表示有符号整数的方法,对于n位补码表示,范围通常是从 -2^(n-1) 到 2^(n-1)-1。举例来说,对于8位补码表示,范围是从 -128 到 127(因为补码的+0和-0是一样的)。