zoukankan      html  css  js  c++  java
  • 关于原码、反码、补码的理解

    在上学期学习c语言c++的时候就接触到了原码、反码和补码这三个概念。

    首先,我自己的理解,原码、反码和补码这三个概念都是基于二进制而言。

    原码包括符号位和数值位,数值位就是真值的绝对值,符号位位“0”时表示正数,符号位为“1”时表示负数。这里就可以看出,原码的整数和小数中“0”的表示形式各有2种,“+0”和“-0”不一样,以8位机器数为例,整数的“+0”原码为0,0000000;整数的“-0”原码为1,0000000;小数的“+0”原码为0.0000000,小数的“-0”原码为1.0000000。

    反码跟原码是正数时,一样;负数时,反码就是原码符号位除外,其他位按位取反。以8位机器数为例,整数的“+0”原码为0,0000000,反码为0,0000000;整数的“-0”原码为1,0000000,反码为1,1111111;小数的“+0”原码为0.0000000,反码为0.0000000;小数的“-0”原码为1.0000000,小数的“-0”反码为1.1111111。

    补码,我认为就是因为在计算过程中因为使用原码会出错,所以引进了补码这个概念。补码是计算机把减法运算转化为加法运算的关键编码。正数的补码与其原码相同;负数的补码是在其反码的末位加1。

    在Java中,采用的是补码。

  • 相关阅读:
    C#使用Json
    JQuery AJAX介绍
    封装一个自己的 Ajax小框架
    AJAX跨域实现
    AJAX 一些常用方法
    完整的 AJAX 写法(支持多浏览器)
    AJAX 简单上手
    利用反射生成SQL语句
    访问Access数据库(有多个数据库时 体现多态)
    DataTable操作(建表,建行,建列,添加数据)
  • 原文地址:https://www.cnblogs.com/shumouren/p/11571756.html
Copyright © 2011-2022 走看看