如何计算给定数字的源码、反码和补码?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1010个文字,预计阅读时间需要5分钟。
计算源码、反码和补码的方法:
1. 源码:源码是计算机内部表示数值的基本形式。对于正数,源码就是其本身的二进制表示;对于负数,源码是符号位(最高位)为1,其余位是该数的绝对值的二进制表示。
2. 反码:正数的反码与其源码相同;负数的反码是符号位(最高位)为1,其余位是该数的绝对值的二进制表示中,1变0,0变1。
3. 补码:正数的补码与其源码相同;负数的补码是反码加1。
举例说明:
假设有一个二进制数 `1101`,它是正数 `13` 的二进制表示。
- 源码:`1101`- 反码:`1101`(因为它是正数)- 补码:`1101`(因为它是正数)
如果这个数是负数,比如 `-13`:
- 源码:`1101`- 反码:`1000`(`1101`的反码,1变0,0变1)- 补码:`1001`(反码加1)
这些方法都是计算数值的二进制表示的基础,对于计算机科学和编程非常重要。
最近有朋友问起这些,于是就简单的讲一下吧(只讲求法,没有包含真正的意义)。
源码怎么求//原码就是早期用来表示数字的一种方式,用最高位表示符号位,最高位为‘1’表示负号,‘0’表示正号。其他位存放该数的二进制的绝对值
正数的源码就是本身的二进制表示,负数的源码就是它的绝对值的源码,然后把最高位(符号位) 置1
举例说明:
int类型的 5 的二进制表示为 101B(B表示二进制位), 在32位机器上占四个字节,那么高位补零就得源码为:
00000000 00000000 00000000 00000101
int类型的 -5 的源码就是5的源码,然后给最高位换成‘1’:
10000000 00000000 00000000 00000101
反码怎么求 ?
//正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反
举例说明:
int类型的 5 的反码是
00000000 00000000 00000000 00000101
int类型的 -5 的反码是
11111111 11111111 11111111 11111010
除开符号位 所有位 取反
补码怎么求?//正数的补码与原码相同,负数的补码为其原码除符号位外所有位取反,然后最低位加1(也就是反码加1)
举例说明:
int类型的 5 的补码是:
00000000 00000000 00000000 00000101
int类型的 -5 的补码是
11111111 11111111 11111111 11111011
就是其反码加1
好了最后问问小伙伴 -107的源码,反码,补码你会求了吗?
//源码
1000 0000 0110 1011
//反码
1111 1111 1001 0100
//补码
1111 1111 1001 0101
本文只是简单的讲了一下源码、反码、补码的求法,至于它们的深层意义同学们可以参考这个博客
www.imooc.com/article/16813?block_id=tuijian_wz
本人才学尚浅,发博客的主要目的是为记录自己的学习过程,帮助自己更好的巩固基础,也希望这些小的知识点可以为小伙伴们带来一点帮助,如果有说的不对的地方,欢迎大家在评论区指出。最后希望小伙伴们可以点个推荐,多多支持,感谢。
本文共计1010个文字,预计阅读时间需要5分钟。
计算源码、反码和补码的方法:
1. 源码:源码是计算机内部表示数值的基本形式。对于正数,源码就是其本身的二进制表示;对于负数,源码是符号位(最高位)为1,其余位是该数的绝对值的二进制表示。
2. 反码:正数的反码与其源码相同;负数的反码是符号位(最高位)为1,其余位是该数的绝对值的二进制表示中,1变0,0变1。
3. 补码:正数的补码与其源码相同;负数的补码是反码加1。
举例说明:
假设有一个二进制数 `1101`,它是正数 `13` 的二进制表示。
- 源码:`1101`- 反码:`1101`(因为它是正数)- 补码:`1101`(因为它是正数)
如果这个数是负数,比如 `-13`:
- 源码:`1101`- 反码:`1000`(`1101`的反码,1变0,0变1)- 补码:`1001`(反码加1)
这些方法都是计算数值的二进制表示的基础,对于计算机科学和编程非常重要。
最近有朋友问起这些,于是就简单的讲一下吧(只讲求法,没有包含真正的意义)。
源码怎么求//原码就是早期用来表示数字的一种方式,用最高位表示符号位,最高位为‘1’表示负号,‘0’表示正号。其他位存放该数的二进制的绝对值
正数的源码就是本身的二进制表示,负数的源码就是它的绝对值的源码,然后把最高位(符号位) 置1
举例说明:
int类型的 5 的二进制表示为 101B(B表示二进制位), 在32位机器上占四个字节,那么高位补零就得源码为:
00000000 00000000 00000000 00000101
int类型的 -5 的源码就是5的源码,然后给最高位换成‘1’:
10000000 00000000 00000000 00000101
反码怎么求 ?
//正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反
举例说明:
int类型的 5 的反码是
00000000 00000000 00000000 00000101
int类型的 -5 的反码是
11111111 11111111 11111111 11111010
除开符号位 所有位 取反
补码怎么求?//正数的补码与原码相同,负数的补码为其原码除符号位外所有位取反,然后最低位加1(也就是反码加1)
举例说明:
int类型的 5 的补码是:
00000000 00000000 00000000 00000101
int类型的 -5 的补码是
11111111 11111111 11111111 11111011
就是其反码加1
好了最后问问小伙伴 -107的源码,反码,补码你会求了吗?
//源码
1000 0000 0110 1011
//反码
1111 1111 1001 0100
//补码
1111 1111 1001 0101
本文只是简单的讲了一下源码、反码、补码的求法,至于它们的深层意义同学们可以参考这个博客
www.imooc.com/article/16813?block_id=tuijian_wz
本人才学尚浅,发博客的主要目的是为记录自己的学习过程,帮助自己更好的巩固基础,也希望这些小的知识点可以为小伙伴们带来一点帮助,如果有说的不对的地方,欢迎大家在评论区指出。最后希望小伙伴们可以点个推荐,多多支持,感谢。

