C语言二进制

Python013

C语言二进制,第1张

我解释一下:

不同的编译系统最大值不一样,你说的是Turbo

C

2.0的编译系统!除过前面的一个0是说明它是正数,其它15位都是用来存放数值的,这个意思就是说这个编译系统最大的数不能超过2的15次方减1,即最大值可以表示为0111111111111111,它相当于十进制的32767,实际上使用整数往往超过32767,显然两个字节也存放不下(一个字节为8位,两个字节为16位),因此有的C语言编译系统(如Visual

C++

)以四个字节表示一个整数,即(32位),这时,它的最大值是31个(前面一位说明它是正数,所以是31位)二进制的值都是1,即2的31次方减1,约为21亿,一般情况都可以满足使用要求了。

很详细了!希望能得到分!

c++中负数存储时,不是简单的将符号位置为1,而是采用补码的形式存储的,负数最高位为符号位,也就是1,其余全部取反,然后再加1。

假如操作系统是32位,-1的二进制存储不是:1000

0000 0000 0001,而是:1111 1111 1111 1110+1即1111 1111 1111 1111。

扩展资料:

C语言面向过程,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。

参考资料来源:百度百科-c语言

4的二进制原码是

00000100

-4的二进制的原码是

10000100

(最左边为符号位,求反的时候不变)

-4的补码是原码求反+1

11111011+1=11111100

0

-

1

=

00000000(0的原码)

-

10000001(-1的原码)

=

00000000(0的补码)

+

11111111(-1的补码)

=

11111111(答案补码)

=

111111110(答案-1为结果的反码)

=

10000001(答案)

=

-1