byte的范围是0~255,sbyte的范围是-128~127。难道说byte是用原码表示,sbyte是用补码表示?
发布网友
发布时间:2022-04-25 15:21
我来回答
共2个回答
热心网友
时间:2023-10-12 08:06
1:我们来看一下补码的求得过程:将原码的各位取反,再加1,得到补码。举个例子,1001,它全部取反之后就是0110,再加1得到0111。将原码与补码加相,会得到10000。我们应该知道,计算机最基础的运算器只能做加法,所以叫累加器,它做不了减法。所以当需要减法的时候我们取减数的补码,用被减数去加这个补码。如果是1111-1001=0110的话就相当于1111-(10000-0111)=1111
0111=0110,其中0111是1001的补码。由于码不像数字,码是有位数的*的,当有多于其位数的操作时是不表现出来的,所以减去一个数的原码就相当于加上它的补码。相信,看明白了这一条,第三个问题也就解决了。
2.规定……惯例的,当初就这么说的,反正二进制就两个数,不是0就是1,取反就是对方。1比0大,正数比负数大……我是这样想的,这一点我不敢肯定。
4.不记符号位的话,原码
补码=100...0(0的位数与原码的位置一致),那你说这两个码是不是互为原补码?取补码之后再取一次补码就是自身了。
热心网友
时间:2023-10-12 08:06
计算机中的数实际上是用什么码来表示?
--就是普通的二进制数。
byte的范围是0~255,sbyte的范围是-128~127。
--这两种,都是0000
0000~1111
1111,即00H~FFH。
难道说byte是用原码表示,sbyte是用补码表示?
--你把00H~FFH,当做无符号数,它就是0~255。
--你把00H~FFH,当做有符号数,它就是-128~+127。