首页 > 其他分享 >C - 原码、反码和补码

C - 原码、反码和补码

时间:2022-11-24 20:11:06浏览次数:48  
标签:反码 0001 补码 1111 bit 原码

原码

计算机使用二进制编码存储数字. 用第一个bit位表示符号, 1 表示负号, 0 表示正号.

4个bit能够表示的数字:

  • 最小: 1111 → -7
  • 最大: 0111 → 7

但是原码不能进行加减法运算, 1 + (-1) = 0001 + 1001 = 1010 = 10.

反码

  • 正数的反码等于它的原码
  • 负数的反码是在其原码的基础上, 符号位仍为 1, 其余位取反

但是原码和反码都存在 +0 和 -0 的现象, 4 个bit能表示 16 个数, 里面却含有 2 个 0.

使用反码的编码方式存储数字, 其运算过程如下:

1 + (-1) = 0001 + 1110 = 1111 = -0

补码

  • 正数的补码等于它的原码
  • 负数的补码是在其原码的基础上, 符号位仍为 1, 其余位取反并加 1

4 位二进制数能够表示的范围是: -8 ~ +7 (-8 = 1000)

使用补码的编码方式存储数字, 其运算过程如下:

1 + (-1) = 0001 + 1111 = (1)0000 = +0

标签:反码,0001,补码,1111,bit,原码
From: https://www.cnblogs.com/khrushchefox/p/16923077.html

相关文章

  • golang获取补码,原码
    packagemainimport("encoding/binary""fmt""strconv")funcmain(){vara=[]byte{0x15,0x4B}varb=[]byte{0xE0,0x15}//fmt.Println(fmt.......
  • 源码补码与反码
    title:源码补码与反码comments:truedate:2022-11-2113:24:55tags:javacategory:计算机底层存储数据时使用的是二进制数字,但是计算机在存储一个数字时并不是直......
  • 原码,反码,补码
    源码源码就是该数的二进制数反码整数的反码是其本身,负整数的反码是0变1,1变0;补码整数的补码就是本身,负整数的补码是反码+1;......
  • object类(查看JDK原码,子类重写equals,hascode,toString,finalize)--JAVA
    一、equals==      publicclassequals{//把光标放在equals方法,直接输入ctrl+b--查看jdk源码publicstaticvoidmain(String[]args){Pers......
  • java 为什么要用补码_Java为什么使用补码进行计算的原因分析
    转自csdn---主要是前面的解释很通俗易懂,后面的没有细看,转过来以后查看方便。我们主要要解决的问题就是负数的表示,而众所周知,绝对值相等的两个正负数之和为0。假设我们有......
  • cs03_补码
    浅聊补码今天查资料遇到了补码的概念,可惜已经把专业课老师传授的知识忘得七七八八了,就上网查了下补码的资料,讲解五花八门,读了半天总感觉还是没有关联上自己的知识结构......
  • 原码、反码、补码知识点总结
    好久没接触这三个熟悉而陌生的概念,以前也没理解透彻这三个概念的真正含义与作用,现在来重新做一个清晰而简单的总结。首先,原码、反码、补码只是机器中对于数字的三种不同的表......
  • java基础-->源码,反码,补码 和位运算
    原码、反码、补码原码:十进制数据的二进制表现形式,最左边的是符号位,0为正,1为负。反码:正数的反码是其本身,负数的反码是符号位保持不变,其余取反。补码:正数的补码是其本身,......
  • 计算机是怎样进行补码运算的
    以int类型为例第32位存储符号,0表示正,1表示负,后面31位表示数值部分,最大为2147483647(231-1);若最高位是0,则直接输出,若为1,则先输出负号,然后对数值取补码后输出。 (1)两个正数......
  • 原码、反码、补码
    补码诞生的背景不论是在生活中还是虚拟网络中,人们总是习惯与10进制数字打交道,很容易理解10进制的加减乘除运算,但是我们知道计算机无法直接理解10进制,只能识别高低电平,一般......