重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
左移没区别;
成都创新互联主要从事成都网站制作、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务徽州,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
右移: 有符号补符号位 (>>
); 没符号补 0;
<<
表示 左移>>
表示 右移>>>
表示 无符号右移, 也叫逻辑右移无符号移位
, 左移<<<
和 右移>>>
都是补零无符号数除 2
)有符号数除 2
); 补码剩余部分补符号位算术移位中, 实际设计硬件只实现了补码的算术移位
, 所以右移符合上面的基本移位: 加符号位
The right shift in python is arithmetical. 只有算术右移
由于 Python 没有无符号数,因此它不包含无符号移位 (没有>>>
)
tldr;
正数的补码是本身;
0 的补码是 0;
负数的补码是: 符号位不变, 数据位取反, 再 +1 (不会溢出, 因为会溢出的大值是 -0, 反码 11111111)
计算机中的有符号数有三种表示方法,即原码 original code、反码 inverse code 和 补码 complement code
三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”
而数值位,三种表示方法各不相同
在计算机系统中,数值一律用补码来表示和存储 (原因在于,使用补码,可以将符号位和数值域 统一处理;同时,加法和减法也可以统一处理)
介绍在介绍补码概念之前,先介绍一下“模”的概念:“模”是指一个计量系统的计数范围,如过去计量粮食用的斗、时钟等。计算机也可以看成一个计量机器,因为计算机的字长是定长的,即存储和处理的位数是有限的,因此它也有一个计量范围,即都存在一个“模”。
如:时钟的计量范围是 0~11,模 = 12。表示 n 位的计算机计量范围是 0 ~ 2n- 1,模 = 2n.“模” 实质上是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数。任何有模的计量器,均可化减法为加法运算。也就是取反后加 1。
假设当前时针指向 8 点,而准确时间是 6 点,调整时间可有以下两种拨法:
在 12 为模的系统里,加 10 和减 2 效果是一样的,因此凡是减 2 运算,都可以用加 10 来代替。若用一般公式可表示为:
a-b=a-b+mod=a+mod-b
对“模”而言,2 和 10 互为补数。实际上,以 12 为模的系统中,11 和 1,8 和 4,9 和 3,7 和 5,6 和 6 都有这个特性,共同的特点是两者相加等于模。对于计算机,其概念和方法完全一样。n位计算机,设n=8,所能表示的大数是 11111111,若再加 1 成 100000000 (9位),但因只有 8 位,最高位 1 自然丢失(相当于丢失一个模)。又回到了 00000000,所以 8 位二进制系统的模为。在这样的系统中减法问题也可以化成加法问题,只需把减数用相应的补数表示就可以了。
把补数用到计算机对数的处理上,就是补码。
原码求补码正数
: 正整数的补码是其二进制表示,与原码相同负数
: 求负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加 10 的补码
: 数 0 的补码表示是唯一的[+0]补 = [+0]反 = [+0]原 = 00000000
[-0]补 = 11111111 + 1 = 00000000
已知一个数的补码,求原码的操作其实就是对该补码再求补码:
补码“模”概念的引入、负数补码的实质、以及补码和真值之间的关系, 所揭示的补码符号位所具有的数学特征,无不体现了补码在计算机中表示数值型数据的优势,和原码、反码等相比可表现在如下方面:
总之,补码概念的引入和当时运算器设计的背景
不无关系,从设计者角度,既要考虑表示的数的类型
(小数、整数、实数和复数)、数值范围
和精确度
,又要考虑数据存储
和处理所需要的硬件代价
。因此,使用补码来表示机器数并得到广泛的应用也就不难理解了
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧