想了一个上午都不懂,-1在内存中的存放的二进制码为1111111111111111,这是为什么?看不懂了

如题所述

-1内存中是以补码的形式存放的,即二进制表示的 取反,再加1;

如-1:最左边是符号位,1表示负数。

1的二进制为000000000000001,取反为111111111111110,再加1即为111111111111111;所以整体就是上面的1111111111111111。

整型在内存中以补码形式保存,对于16位机来说,-1的原码是1 0000000 00000001,其补码就是1 1111111 11111111。

扩展资料:

假设当前时针指向8点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨2小时,即8-2=6;另一种是顺拨10小时,8+10=12+6=6,即8-2=8+10=8+12-2(mod 12).在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都有这个特性,共同的特点是两者相加等于模。

参考资料来源:百度百科-补码

温馨提示:内容为网友见解,仅供参考
无其他回答

想了一个上午都不懂,-1在内存中的存放的二进制码为1111111111111111,这...
-1内存中是以补码的形式存放的,即二进制表示的 取反,再加1;如-1:最左边是符号位,1表示负数。1的二进制为000000000000001,取反为111111111111110,再加1即为111111111111111;所以整体就是上面的1111111111111111。整型在内存中以补码形式保存,对于16位机来说,-1的原码是1 0000000 00000001,其补码...

-1在内存中存放的二进制码为什么是1111111111111111?只知道最高位的1...
没有为什么,就是这个整个二进制码才代表“-1”。你将这个二进制加1,就能得到0的二进制码。

为什么c语言中-1的二进制是1111111111111111?
整型在内存中以补码形式保存,对于16位机来说,-1的原码是1 0000000 00000001,其补码就是1 1111111 11111111.

-1在C语言环境下存储对应的二进制数序到是?
-1用二进制表示为:1111111111111111。c++中负数存储时,不是简单的将符号位置为1,而是采用补码的形式存储的:负数最高位为符号位,也就是1,其余全部取反,然后再加1。假如操作系统是32位,-1的二进制存储不是:1000000000000001,而是:1111111111111110+1即1111111111111111。C语言中printf("%u")表示按...

为什么负数在内存中要以二进制补吗的形式存放?
1111111111111111的最高位代表负数没错,剩下的15位全是1,在二进制里就是能表示出来的最大的正数了,你想,一个最大的数前面加个负号,那么这个数是不是就成为了最小的负数?电脑里存放的十进制都是小数点前面的数,也就是整数。10进制里最小的负整数,那当然就是-1了。明白了就给我加分吧。

-1的二进制编码是什么?
如果是16个1表示-1的话,则一定是16位二进制补码的形式。-1的16位二进制原码:1000000000000001,-1的16位二进制补码:1111111111111111。

请问-1的二进制如何表示?
-1的正确表示应该是1111 1111,即0xFF。因为C语言里,对整型数是采用Two’s complement表示法,而前面我的理解则是Sign-Magnitude表示法(浮点数采用该法)。在Two’s complement表示法里,1000 0001表示的是-127。虽然一直用C\/C++,但很少涉及到Bit序列的问题。比如,-1的二进制表示到底是怎样的?从...

1111111111111111二进制数化是十进制多少?
对于有符号数,情况有所不同。例如,-1在二进制中表示最高位为符号位,1表示负数。在转换前,我们需要先处理符号位。-1的二进制表示是1111111111111111,如果加上1(取反后再加1的操作),它会变成0000000000000000,然后我们只取最高位,得到的二进制数就是1,这表明原数是-1。总结起来,无符号数...

...是怎么算出来的,还有-1的存储形式怎么是1111111111111111...
一、-1在计算机中以补码形式存储,在16位的编译系统中,-1的补码是1111111111111111;在32位的编译系统中,-1的补码是11111111111111111111111111111111;根据运行结果,你是情况属于16编译系统;二、-1的补码1111111111111111以无符号整数%u输出就是65535。即(65535)10=(1111111111111111)2。

C语言中 int型2字节 -1的源码是 1000000000000001 还是 0000000000000001...
C语言种,负数以补码形式存储。把一个负数对应的正数的二进制码,取反,再加1,就是原来的负数的补码。换言之,补码减1,再取反,就是原来的负数 所以 -1的补码是 111111111111111111(全是1)

相似回答
大家正在搜