• 原码反码补码


    1.机器数

      机器数是将符号"数字化"的数,是数字在计算机中的二进制表示形式。机器数有两个基本特点:

      1.数的符号数值化。在计算机中,所有数都是以二进制形式存储,第一位为符号位,以0代表符号"+",以1代表符号"-"。因为有符号占据一位,数的形式值就不是真正的数值,带符号位的机器数对应的数值称为机器数的真值。

      2.二进制的位数受机器设备的限制。机器内部设备一次能表示的二进制位数叫机器的字长,一台机器的字长是固定的。字长8位叫一个字节,机器字长一般都是字节的整数倍,如字长8位、16位、32位、64位。

    2.原码

      原码表示法是计算机中一种对数字的二进制定点表示方法。最高位为符号位,其余位表示数值的大小。如

    +1      00000000 00000000 00000000 00000001

    -1      10000000 00000000 00000000 00000001

    3.反码

      反码是数值存储的一种,多应用于系统环境设置,如linux平台的目录和文件的默认权限的设置umask,就是使用反码原理。

      正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

    -7      10000000 00000000 00000000 00000111   原码

        11111111 11111111 11111111 11111000   反码

    4.补码

      在计算机中,二进制数以补码的形式存储,负数以其正值的补码形式存在。

    -7      11111111 11111111 11111111 11111001   补码

    5.原码反码补码的转换

      负数原码转换为反码,符号位不变,其他按位取反,反码转换为原码也是一样。原码转换为补码:符号位不变,其他按位取反,末位再加1,即反码末位加1。

    -7      10000000 00000000 00000000 00000111   原码

        11111111 11111111 11111111 11111000   反码

        11111111 11111111 11111111 11111001   补码

    6.按位取反运算符~

      按位取反运算符~涉及到了原码反码补码的转换,熟悉了原码反码补码,就能理解~的运算机制。

     ~7   00000000 00000000 00000000 00000111   原码

          11111111 11111111 11111111 11111000   按位取反后变成未知数X的补码

                -   00000000 00000000 00000000 00000001   补码变反码的操作

                    11111111 11111111 11111111 11110111   未知数X的反码

                    10000000 00000000 00000000 00001000   未知数X的原码

    所以~7 = -8

  • 相关阅读:
    paper 30 :libsvm的参数说明
    paper 29 :CV会议+领先研究室+专家+代码网址
    paper 28 :一些常见常用数据库的下载网站集锦
    paper 27 :图像/视觉显著性检测技术发展情况梳理(Saliency Detection、Visual Attention)
    paper 25 :SVM支持向量机是什么意思?
    paper 24 :matlab的cat函数
    paper 23 :Kullback–Leibler divergence KL散度(2)
    paper 22:kl-divergence(KL散度)实现代码
    paper 21 :Libsvm的安装和使用
    paper 20 :color moments
  • 原文地址:https://www.cnblogs.com/dream0-0/p/9752877.html
Copyright © 2020-2023  润新知