01
08年
在C++中有两种类型的数字。整数和浮动。这些类型也有一些变体,它们包含较大的数字,或者只包含无符号数字,但它们仍然是整数或浮点数。
整数是一个类似于47的整数,没有小数点。你不能生4.5个孩子,也不能生32.9次。如果你使用浮动汇率,你可以得到25.76美元。因此,在创建程序时,必须决定使用哪种类型。
有些脚本语言就是这样做的?因为它的效率很低,浮点数占用更多的内存,并且通常比整数慢。此外,您无法轻松地比较两个浮点值,以查看它们是否与整数相同。
要处理数字,必须将它们存储在内存中。因为这个值很容易更改,所以它被称为变量。
读取程序并将其转换为机器代码的编译器需要知道它是什么类型,即是int还是float,因此在程序使用变量之前,必须声明它。
这里有一个例子。
int计数器=0;您会注意到计数器变量被设置为0。这是一个可选的初始化。初始化变量是一个很好的实践。如果在没有设置初始值的情况下不进行初始化,然后在代码中使用它们,那么变量将以一个随机值开始,该值可能会“破坏”代码。该值将是加载程序时内存中的任何值。
02
08年
整数可以存储的最大数字是多少?。嗯,这取决于CPU的类型,但它通常被接受为32位。因为它可以容纳几乎与正值一样多的负值,所以值的范围是+/-2-32到232或-2147483648到+2147483647。
这是一个有符号整数,但也有一个无符号整数,它包含零或正。它的范围为0到4294967295。请记住-无符号整数前面不需要符号(如+或-1),因为它们始终为正或0。
有一种较短的int类型,巧称为short int,它使用16位(2字节)。这将保存范围在-32768到+32767之间的数字。如果使用大量整数,则可以通过使用短整数来节省内存。它不会更快,尽管只有一半大小。32位CPU从内存中一次获取4字节块的值。即32位(因此得名为-32位CPU!)。因此,获取16位仍然需要获取32位。
C中有一个较长的64位称为长长。一些C++编译器不支持该类型,而是直接使用一个替代名称——例如Borland和微软都使用了其范围为-9223372036854775807到9223372036854775807(已签名)和0到18446744073709551615(未签名)。
与整数一样,有一个范围为0..65535的无符号短整数类型。
注:某些计算机语言将16位表示为一个单词。
03
08年
没有长浮点,但有一个双类型,是浮点的两倍大。
除非你在用非常大或非常小的数字进行科学编程,否则你只能使用双精度。浮点数的精度为6位数,而双精度浮点数的精度为15位数。
考虑数字567.8976523。它是一个有效的浮点值。但如果我们用下面的代码打印出来,你会发现精度不够。数字有10位,但存储在浮点变量中,精度只有6位。
#包括<iostream>有关cout如何工作以及如何使用精度的详细信息,请参见关于输入和输出。此示例将输出精度设置为8位。不幸的是,float只能容纳6,一些编译器会发出关于将double转换为float的警告。运行时,将打印出567.89764
如果将精度更改为15,则打印为567.897644042969。完全不同!现在向左移动小数点2,使值为5.678976523,然后重新运行程序。这次它输出5.67897653579712。这更准确,但仍然不同。
如果将值的类型更改为double,将精度更改为10,则将完全按照定义打印值。作为一般规则,浮点数对于小的非整数很方便,但对于超过6位的数字,必须使用双精度浮点数。
04
08年
如果你不能做加法、减法等,编写计算机软件就没有多大用处。下面是例子2。
//ex2numbers.cpp声明了三个int变量。A和B为赋值,然后total为A和B之和赋值。
在运行命令行应用程序时,这里有一个节省时间的小技巧。
当您从命令行运行此程序时,它应输出“数字为22”。
除了加法,你还可以做减法、乘法和除法。只需将+用于加法、-用于减法、*用于乘法和/或除法。
尝试更改上述程序-使用减法或乘法。您还可以将整数更改为浮点或双精度。
使用浮点数时,除非如前所示设置精度,否则无法控制显示多少小数点。
05
08年
输出数字时,需要考虑数字的这些属性。
现在,cout对象和iomanip include文件函数可以设置宽度、对齐方式、小数位数和符号。
数千个分离器稍微复杂一些。它们是从PC的区域设置的。区域设置包含与您所在国家相关的信息,例如货币符号、小数点和千位分隔符。在英国和美国,数字100.98使用小数点。作为小数点,而在一些欧洲国家,它是一个逗号,因此5,70欧元意味着5欧元70美分的价格。
int main()这个函数的输出是
=======该值为925678.87500006
08年
该示例在行中使用了来自PC的locale对象
地点loc(“”);线路
const moneypunct<char,true>&mpunct=使用方面<moneypunct<char,true>(loc);创建一个对象mpunct,该对象是对moneypunct模板类的引用。这包含有关指定区域设置的信息-在我们的示例中,数千_sep()方法返回用于千分隔符的字符。
不排队
法庭灌输(loc);不会有千分之一的分离机。尝试注释它并重新运行程序。
请注意,在cout.imbue的行为方面,不同编译器之间似乎存在差异。在Visual C++ 2005 Express版本下,这包括分隔符。但是微软Visual C++ 6的代码没有!
上一页的示例使用showpoint显示小数点后的尾随零。它以所谓的标准模式输出数字。其他模式包括
如果通过cout.setf使用这两种格式模式中的任何一种,则precision()会设置小数点后的小数位数(而不是总位数),但会丢失数千位格式。此外,尾随零(由ios_base::showpoint启用)将自动启用,而无需showpoint。
07
08年
看看这句话。
浮动f=122/11;您可能期望值为11.0909。事实上,这个值是11。为什么会这样?因为右侧的表达式(称为右值)是整数/整数。因此,它使用整数算法,丢弃小数部分,将11赋值给f。改成
浮动f=122.0/11我会改正的。这是一个非常简单的问题。
在C语言中,没有bool这样的类型。C中的表达式基于零为假或非零为真。在C++中,类型布尔可以将值取为真或假。这些值仍然等于0和1。在编译器的某个地方,它将有一个
常数int false=0;或者至少它是这样做的!下面的两行在不强制转换的情况下是有效的,因此在幕后,bool被隐式转换为int,甚至可以递增或递减,尽管这是非常糟糕的做法。
布尔-弗雷德=0;看看这个代码
布尔坏=真;if仍然会执行if,因为坏变量不是零,但它是坏代码,应该避免。良好的实践是按预期使用它们。如果(v)是有效的C++,但我更喜欢更明确的(v!=0)。然而,这是一个品味的问题,而不是一个必须做的指令。
08
08年
要更深入地了解枚举,请先阅读本文。
枚举类型提供了一种将变量限制为一组固定值之一的方法。
枚举彩虹色{红、橙、绿、黄、蓝、靛、紫}; 枚举彩虹颜色{红色=1000,橙色=1005,绿色=1009,黄色=1010,蓝色,靛蓝,紫色}; 黄色=1010可以将枚举值指定给int,如中所示
int p=红色; 彩虹色g=1000;//错误 彩虹色g=红色; 类型安全 编译器在编译时捕获错误比用户在运行时捕获错误更好尽管这两种说法在概念上是相同的。事实上,你通常会发现这两条看似相同的线
int p=1000;这就完成了本教程。下一个教程是关于表达式和语句的。
...些最早出现在C语言中的特性。它已被广泛用于为最小的嵌入式微型计算机向最大的大型机和超级计算机编写软件。 ...
...Python,但它并不是最适合这项工作的语言。在许多底层和嵌入式系统中,Python不是一个选项。 ...
...关的,这使得它成为为各种平台(包括移动电话、网站、嵌入式系统、服务器等)开发应用软件的理想选择。核心java是指java标准版(java SE),它是java平台的基本基础,用于开发桌面和服务器的企业级应用程序。 水平 Java是初...
...,随处运行”的语言,这使得它成为网站、服务器、**、嵌入式系统等各种平台的首选,提供了一个与体系结构无关的环境来开发大型企业应用程序。 java和j2ee中的组件 Java语言的三个主要组件是Java虚拟机(JVM)、Java开发工具包...
...是一种静态类型的语言,其中程序在编译时确定。Python是嵌入式计算中发展最快的语言之一。
...效程序的有用工具,用于开发操作系统、设备驱动程序、嵌入式系统、图像处理应用程序和研究。在编程中,有时需要一次又一次地重复同一组指令。循环有助于多次迭代一组指令。执行循环时,有时需要跳过循环内的语句或终...
...效的程序。操作系统、网络驱动程序、编译器、数据库、嵌入式系统、语言解释器和文本编辑器是我们可以使用C语言开发的一些常见应用程序。 什么是C++(c++)? C++是贝尔实验室Bjarne Stroustrup开发的一种编程语言。它比C语言有更...
...效编译器。它还将系统软件、应用软件、设备驱动程序、嵌入式软件、高性能服务器和客户端应用程序作为其应用领域的一部分,以及视频游戏等娱乐软件。 C++最初是作为C语言的增强而开始的。它被设计成与C源和链接兼容。...
...效编译器。它还将系统软件、应用软件、设备驱动程序、嵌入式软件、高性能服务器和客户端应用程序作为其应用领域的一部分,以及视频游戏等娱乐软件。 C++最初是作为C语言的增强而开始的。它被设计成与C源和链接兼容。...