C语言里 -1用%u形式输出为什么是65535啊?为什么不是1呢?

Python0135

C语言里 -1用%u形式输出为什么是65535啊?为什么不是1呢?,第1张

计算机中的数 对应的二进制第一位在有符号时,1为负,0为正

所以-1的首位是1

再者负数的存储是不用原码的,而是补码

所以-1的%u就是65535了(1111 1111 1111 1111)

在C语言中(-1)&&(-1)结果是1。

C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

扩展资料:

C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。

当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。

i++和i--的区别:

1、运算方式

i++属于自增运算,相当于i=i+1;

i--属于自减运算,相当于i=i-1;

2、值的变化:

假设i=10,分别运行i++、i--后;

i++后:i=i+1=10+1=11;

i--后:i=i-1=9。

扩展资料:

无论i++,还是i--,这两个公式既可以单独存在,也可以赋值给另外的变量。当赋值引用的时候,他们的含义:

1、i++,先引用i的值,后增加i的值,

如int i=10;

int a=i++;

该程序运行后,a=10,而i=11。

2、i--,先引用i的值,后i的值减1。

如int i=10;

int a=i--;

该程序运行之后,a=10,i=9。

除了以上的用法外,还有一种表示法是++i或者--i,这种表示法i的值也会相应的自增1或者自减1,i的结果和i++与i--是相同的,但是当赋值给另一个变量时,对赋值的变量,结果却存在差别,因为++i代表先增加,后引用,--i代表先减少,再引用。

例如同样的程序,i=10,

如果int a=i++,那么a=10;而int b=++i的话,b=11;

如果int a=i--,那么a=10;而int b=--i的话,b=9。