C++程序设计基础-谭浩强经典课件

需积分: 3 1 下载量 167 浏览量 更新于2024-08-24 收藏 8.82MB PPT 举报
"有符号数-谭浩强经典c++课件" 这篇课件主要讨论的是有符号数和无符号数在C++编程中的概念及其表示方式。在计算机中,数值分为有符号数(signed numbers)和无符号数(unsigned numbers),这两种类型用于存储整数。有符号数能够表示正负值,而无符号数则只存储非负值。 有符号数在计算机内存中通常使用补码(two's complement)形式表示。补码是一种表示负数的方法,其中最左边的一位被称为符号位,0表示正数,1表示负数。例如,32位系统中,一个整数的范围是从-2^31到2^31-1。正数和零的补码与其原码相同,而负数的补码是其反码加1。在给出的示例中,可以看到当有符号数从32767递减到-1时,二进制表示逐位翻转,直到最后形成全1的负数表示-1。然后继续减去1,会得到65535,这是-1的无符号表示,因为无符号数无法表示负值,所以当尝试表示-1时,它会溢出并返回最大值。 无符号数则不使用符号位,因此它们的范围是从0到2^n-1,其中n是存储位数。例如,在32位系统中,无符号整数的范围是从0到2^32-1。在示例中,无符号数从32767到32766的递减是正常的减法过程,没有涉及到符号位的改变。 C++语言支持这些不同的整数类型,包括`int`(通常是有符号的)、`unsigned int`(无符号的)以及其他的如`short`、`long`、`long long`等,每种类型都有其特定的位宽和数值范围。程序员需要根据需求选择合适的数据类型。 课件中提到C++语言的发展历史,起源于C语言,由Dennis Ritchie和Brian Kernighan设计,后来为了支持面向对象编程,Bjarne Stroustrup在C语言的基础上发展出了C++。C++语言结合了C语言的效率和高级语言的抽象能力,同时引入了类、模板、异常处理等特性,使得它在系统编程、应用软件、游戏开发等多个领域都有广泛应用。 C++语言的特点包括其结构化编程能力、丰富的运算符、良好的可移植性以及对底层操作的支持。然而,C++的语法较为自由,对于初学者来说,理解和调试代码可能更具挑战性。尽管如此,一旦掌握了C++,就能编写出高效且可复用的代码。