• 原码,反码与补码


       注:数在计算器中用二进制形式进行存储,其存储形式称为该数的机器数。数字的最高位是符号位,0代表正,1代表负。

         由于第一位是符号位,机器数形式值不一定等于真正的数值,因此,将带符号位的机器数对应真正的值称为真值。例:0000 0001 = +000 0001 =+1;1000 0001 = -000 0001 = -1。

      原码:第一位是符号位,其余位表示值,因此,正数的原码是它本身,负数原码第一位为1,表示其为负。

         例:+1原:0000 0001;

            -1原:1000 0001。

         由于第一位是符号位,8位二进制的取值范围是:[1111 1111, 0111 1111]=[-127, 127]。

      反码:正数反码是其本身,负数反码在原码基础上,符号位不变,其他位取反【1变为0,0变为1】。

         例:+1=[0000 0001]原 = [0000 0001]反

            -1=[1000 0001]原 = [1111 1110]反 

      

      补码:正数补码是其本身,负数补码是在反码基础上,符号位不变,末位+1【二进制:0+1变为1;1+1变为0,前位+1】

         例:+1=[0000 0001]原 = [0000 0001]反 = [0000 0001]补

            -1=[1000 0001]原 = [1111 1110]反 = [1111 1111]补

            -2=[1000 0010]原 = [1111 1101]反 = [1111 1110]补

  • 相关阅读:
    Java多线程-新特性-有返回值的线程
    Java多线程-新特性-线程池
    java多线程-慎重使用volatile关键字
    Java多线程-线程的调度(守护线程)
    Java多线程-线程的调度(合并)
    Java多线程-线程的调度(让步)
    Java多线程-线程的调度(优先级)
    Java多线程-线程的调度(休眠)
    Java多线程-线程的交互
    let 命令 与 var的区别
  • 原文地址:https://www.cnblogs.com/20183711PYD/p/11571765.html
Copyright © 2020-2023  润新知