零有几个源码
❶ 二进制0 和-0源码反码补码
用16位二进制表示时,
0的原码、反码和补码,相同,都是:0000
0000
0000
0000。
-32768的原码、反码:都不存在。
-32768的补码:1000
0000
0000
0000。
❷ 数字0的原码为 B、 B
[+0]原码=0000 0000, [-0]原码=1000 0000[+0]反码=0000 0000, [-0]反码=1111 1111[+0]补码=0000 0000, [-0]补码=0000 0000补码没有正0与负0之分。
正数的反码、补码和其源码相同,负数的反码是其源码,除符号位外其他位取反负数的补码是取其反码后加1。详细释义:所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。(一)反码表示法规定:
1、正数的反码与其原码相同;
2、负数的反码是对正数逐位取反,符号位保持为1;(二)对于二进制原码10010求反码:((10010)原)反=对正数(00010)原含符号位取反= 反码11101 (10010,1为符号码,故为负)(11101) 二进制= -2 十进制(三)对于八进制
❸ +0或者-0的源码、反码、补码
[+0]原码=0000 0000, [-0]原码=1000 0000
[+0]反码=0000 0000, [-0]反码=1111 1111
[+0]补码=0000 0000, [-0]补码=0000 0000
补码没有正0与负0之分。正数的反码、补码和其源码相同,负数的反码是其源码,除符号位外其他位取反负数的补码是取其反码后加1。
详细释义:
所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
(一)反码表示法规定:
1、正数的反码与其原码相同;
2、负数的反码是对正数逐位取反,符号位保持为1;
(二)对于二进制原码10010求反码:
((10010)原)反=对正数(00010)原含符号位取反= 反码11101 (10010,1为符号码,故为负)
(11101) 二进制= -2 十进制
(三)对于八进制:
举例 某linux平台设置了默认的目录权限为755(rwxr-xr-x),八进制表示为0755,那么,umask是权限位755的反码,计算得到umask为0022的过程如下:
原码0755= 反码 0022 (逐位解释:0为符号位,0为7-7,2为7-5,2为7-5)
(四)补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
(3)零有几个源码扩展阅读
转换方法
由于正数的原码、补码、反码表示方法均相同,不需转换。在此,仅以负数情况分析。
(1) 已知原码,求补码。
例:已知某数X的原码为10110100B,试求X的补码和反码。
解:由[X]原=10110100B知,X为负数。求其反码时,符号位不变,数值部分按位求反;求其补码时,再在其反码的末位加1。
1 0 1 1 0 1 0 0 原码
1 1 0 0 1 0 1 1 反码,符号位不变,数值位取反
1 +1
1 1 0 0 1 1 00 补码
故:[X]补=11001100B,[X]反=11001011B。
(2) 已知补码,求原码。
分析:按照求负数补码的逆过程,数值部分应是最低位减1,然后取反。但是对二进制数来说,先减1后取反和先取反后加1得到的结果是一样的,故仍可采用取反加1 有方法。
例:已知某数X的补码11101110B,试求其原码。
解:由[X]补=11101110B知,X为负数。
采用逆推法
1 1 1 0 1 1 1 0 补码
1 1 1 0 1 1 0 1 反码(末位减1)
1 0 0 1 0 0 1 0 原码(符号位不变,数值位取反)
❹ 为什么“对于真值0,源码有两种不同的表现形式,而补码却只有唯一的一种表现形式.”
0可以是+0,也可以是-0
0的原码为:10000(-0),00000(+0)
+0的补码和原码相同,为00000
-0的补码是在-0的原码(10000)的基础上,符号位不变,其它位按位取反再在低位加1(11111+1=00000),进而得到-0的补码00000
所以补码表示0只有一种情况00000.而原码则表示了两次,分别为10000和00000.
希望可以帮到你,谢谢!
❺ 什么的编码有两个零
0有+0和-0之分
+0的原码(8位):0000_0000
反码、补码同。
-0的原码(8位):1000_0000
反码 :1111_1111
补码 : 0000_0000
相比较起来,原码和反码都有2个表示0的编码。补码都是一样的。
总之,正数的原码、反码、补码一样;
负数的原码就是{符号位1,绝对值原码},反码等于符号位除外的各位取反,补码等于反码加1。
无符号数:最高位不用来表示正负,它没有负数
所以答案是AB
❻ 源码是什么 为什么它前面会有那么多零 如果255要怎么表示8位都是1啊
为了区分。多个二进制是表示一个范围的数如果世界上只有一个数字,就不需要这么多二进制表示了。比如用8个二进制表示,也只能表示0~255如果要表示256以上,那么8个二进制也不够,还得增加,比如16个二进制数。另外,为了处理器处理方便,都是按找byte(8个二进制)或word(16个二进制)的倍数来增加的。
❼ “在计算机中,原码和反码不能表示 -1。”这种说法是否正确,为什么
“在计算机中,原码和反码不能表示 -1。”,这种说法不正确。源码和反码都能表示-1。
[-1]原= 1000 0001。
[-1] = [10000001]原 = [11111110]反。
(7)零有几个源码扩展阅读:
计算机使用原码和反码的原因:
对于计算机, 加减乘数已经是最基础的运算, 要设计的尽量简单。计算机辨别"符号位"显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法.
根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了。
于是人们开始探索 将符号位参与运算, 并且只保留加法的方法.。首先来看原码:
计算十进制的表达式: 1-1=0
为了解决原码做减法的问题, 出现了反码:
1 - 1 = 1 + (-1) = [0000 0001]原+ [1000 0001]原= [0000 0001]反+ [1111 1110]反= [1111 1111]反= [1000 0000]原= -0
发现用反码计算减法, 结果的真值部分是正确的. 而唯一的问题其实就出现在"0"这个特殊的数值上. 虽然人们理解上+0和-0是一样的, 但是0带符号是没有任何意义的. 而且会有[0000 0000]原和[1000 0000]原两个编码表示0.
于是补码的出现, 解决了0的符号以及两个编码的问题:
1-1 = 1 + (-1) = [0000 0001]原+ [1000 0001]原= [0000 0001]补+ [1111 1111]补= [0000 0000]补=[0000 0000]原
这样0用[0000 0000]表示, 而以前出现问题的-0则不存在了.而且可以用[1000 0000]表示-128:
(-1) + (-127) = [1000 0001]原+ [1111 1111]原= [1111 1111]补+ [1000 0001]补= [1000 0000]补
-1-127的结果应该是-128, 在用补码运算的结果中, [1000 0000]补就是-128. 但是注意因为实际上是使用以前的-0的补码来表示-128, 所以-128并没有原码和反码表示。
❽ -128的原码有没有
原码,在计算机里面是不存在的。
研究原码干什么?
原码的范围:-127~+127,其中含有两个零。
原码没有用的。
输入到计算机里面,都是使用补码。
原码只是写在纸上,其功能,也就是来求补码。
但是,-128,还并不是用原码求出来的。
参考一下:
http://hi..com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d92cc986c2a1523bc75cc380.html
❾ 0 的原码有几个
0原码是00000000 -0原码是10000000 0反码是00000000 -0反码是11111111 0补码是00000000