483一个数乘6再除以6结果还是这个数4与的差,再乘62与16的和?

这是整数除以小数竖式计算,是优秀的数学教案文章,供老师家长们参考学习。整数除以小数竖式计算第1部分先将除数转换成整数,将除数的小数点向后移动一位或几位,根据商不变的性质,被除数也要扩大相应的倍数,就是除数的小数点向后移动几位,被除数的后面就要填上几个0,这样我们就把小数除法转换成整除法。例如:40÷0.5 将0.5的小数点向后移动一位除数就由原来的0.5变为5,40的后面填上一个0 就是400,此刻就是计算400÷5=80,所以40÷0.5=80,结果就出来将除数可以转换成分数,除以一个数等于乘上这个数的倒数。再拿40÷0.5来举例说明,0.5转换成分数就是1/2,40÷0.5就是40÷1/2,就是40×2=80,与第一种方式计算结果一致。最后一种就是列竖式计算,按照整数除以整数的方法的去除,商的小数点要和被除数的小数点对齐,如果除到被除数的末尾仍有余数,就在后面填0再继续除,除得的商哪一位不够商1就要在哪一位上写0占位。四则运算在数学中,当一级运算(加减)和二级运算(乘除)同时在一个式子中时,它们的运算顺序是先乘除,后加减,如果有括号就先算括号内后算括号外,同一级运算顺序是从左到右.这样的运算叫四则运算。四则指加法、减法、乘法、除法的计算法则。一道四则运算的算式并不需要一定有四种运算符号,一般指由两个或两个以上运算符号及括号,把多数合并成一个数的运算。加法: 把两个数合并成一个数的运算/把两个小数合并成一个小数的运算/把两个分数合并成一个分数的运算减法: 已知两个加数的和与其中一个加数,求另一个加数的运算。乘法 :求几个相同加数的和的简便运算。小数乘整数的意义与整数乘法意义相同。一个数乘纯小数就是求这个数的十分之几,百分之几…… 分数乘整数的意义与整数乘法意义相同。除法: 已知两个因数的积与其中一个因数,求另一个因数的运算。与整数除法的意义相同整数除以小数竖式计算第2部分今天讲解的题目是除数是整数的小数除法,这是小数除法的必考题目,也是学习小数除法的第一步,必须要掌握,如果有不清楚的一定要看看,今天有四道题目,分别是不同的情况,如下图首先我们来看第一道题目,9.84÷3,要列竖式计算,因为被除数是小数,那我们就先把他当成整数,按照整数除法来计算,984÷3,得数是328,求出结果后,我们现在就要看小数点的位置,整数部分是9,除以3,商是3,所以小数点要在3的后面,与被除数的小数点对齐,第一种情况是把小数除法按照整数除法进行计算,商的小数点要和被除数的小数点对齐。第二道题目,2.5÷5,列出竖式计算,先把2.5当成整数计算,答案是5,再来看小数点的位置,因为2.5的整数部分是2,2÷5不够除,所以要在2的位置上商0占位,同时,商的小数点要和被除数的小数点对齐,在0的后面点上小数点。第二种情况是,当被除数的整数部分不够除时。要商0占位,商的小数点要和被除数的小数点对齐。第三道题目,6.4÷5,先列出竖式计算,按照整数除法进行计算,计算到第二步的时候,被除数的末尾仍有余数4,那么我们就在4的后面添0继续除,一直除到没有余数为止。(针对我们能除尽的小数除法),最后答案是1.28,第三种情况是,除到被除数的末尾仍有余数,要在余数的末尾添0继续除,商的小数点要和被除数的小数点对齐。第四道题目,整数除以整数。13÷2,按照整数除法竖式计算,商6余数是1,根据小数的基本性质,可以把任意一个整数写成小数部分为零的小数,小数点点在个位的右下角。要在13的后面添0,并且在13的右下角点上小数点,在1的后面添0继续除。商5,那么。5要写在十分位上,并且要在6的右下角点上小数点,商的小数点要和被除数的小数点对齐。第四种情况就是整数除以整数,商是小数,要与小数除以整数的计算方法相同。这是我们今天讲解的小数除法的四种计算方法。是我们学习小数除法的基础,也是必考题目。所以大家必须要掌握。整数除以小数竖式计算第3部分除数是整数的小数除法练习题小数除以整数,按整数除法的方法去除,商的小数点要和被除数的小数点对齐,如果有余数,要添“0”继续除。 小数除以整数,当被除数比除数小,整数部分不够商1时,要先在商的个位上写0,点上小数点后再除。如果除到被除数的末尾仍有余数,就在余数后面添“0”继续除。 1、计算6.5÷5=1.4÷7= 3.20.36÷3= 6.4÷4=0.0157.2÷6=9.8÷7= 0.360.48÷12= 7.5÷15=5.18÷40= 0.72÷9= 0.662、用竖式计算且用乘法验算。12.8÷4 66÷25 1.680.416÷32= 0.138÷15= 42.21÷8= ÷5=÷2= ÷17=÷÷12 ÷18= 1、计算1.6÷40=0.75÷3=2.5÷10=7.5÷15=16.8÷6= 0.65÷13=9.53÷5=3.2÷16= 1.68÷60= 15.4÷2=1.65÷5=6.15÷5=7.2÷12=3.51÷3=2.8÷20=3.54÷6=14.21÷7= 0.08÷5=92÷50= 3.62÷4= 10÷25= 2、填一填。(1)0.3里面有( )个十分之一,有( )个百分之一。(2)0.08里面有( )个百分之一,有( )个千分之一。(3)( )个十分之一是0.6,( )个千分之一是0.25。(4)计算一个小数除以整数时,商的小数点要和( )的小数点( )。12、算一算,比一比。56÷4= 72÷16= 120÷15= 5.6÷4=7.2÷12= 12÷15= 3、列竖式计算,并用乘法验算。40.3÷65= 45.9÷34= 59.16÷29=4、列式计算。(1)什么数扩大15倍是48.15?(2)把31.2平均分成26份,每份是多少?(3)把102.4平均分成32份,每份是多少?5、小明购买一2套《动物世界》共4本,售价67.2元,平均每本售价多少钱?6、一瓶饮料1.5千克,正好倒满12杯,平均每杯多少千克?7、五年级两个班去植树,一班42人共植树147棵,二班45人共植树117棵,哪个班人均植树多?多多少?整数除以小数竖式计算第4部分三位数除以两位数735÷15= 330÷11=371÷17=728÷17=435÷15= 472÷18= 813÷14=518÷14=150÷19=420÷15= 672÷56=633÷15= 325÷13= 968÷22= 842÷16=765÷15=987÷19=223÷12= 982÷13= 649÷11= 561÷17= 114÷16= 190÷11=624÷39=141÷13= 443÷13= 121÷11=299÷13= 244÷12=966÷23= 459÷17= 393÷16= 784÷49 =666÷11=512÷19= 923÷88=572÷13=765÷15=927÷16=320÷16=188÷16= 931÷19= 205÷21= 589÷14= 710÷15= 765÷57=418÷14=342÷11= 395÷56= 240÷15= 240÷13= 294÷29= 240÷20= 689÷15=328÷42= 513÷17= 636÷18=372÷45 = 165÷11=300÷12= 962÷37 =小数除以整数:要记住把商的小数点和被除数的小数点对齐。1、23.6÷10= 10÷4=3÷6=0.36÷3=8.4÷2= 0.05×40=40÷50=5.7+13=6.6÷33 = 0.6÷100= 3.2÷4=10000×6.78= 7.2÷90= 0.56÷8= 3.2×5= 0.84÷21= 6÷30= 4.5÷5=36÷15= 23.4÷12=56÷78= 11.7÷9= 43.5÷29=85.5÷9066.6÷67= 3.4÷12= 40.6÷14=2、在括号里填上合适的数。7.32÷()=0.7328.6÷() =0.08656.23×()=562.3 12.3÷()=1233.9÷() =0.00393.6÷( )=0.363、填空。 3.6÷2=( )15.87÷20=( ) 7.98÷8=( ) 4.95÷11=( )(2)( )×15=7.5( )×8=90 40.5÷( )=15(3)60时=( )日4计算下面各题。(1)6÷24 (2)52.95÷75(3)84.01÷31(用乘法验算)5、根据25×5=125, 2.5×5=() 125÷5=() 12.5÷25=() 1.25÷5=()0.125÷5=()1250÷5=() 4.95÷11 3.01÷7 280.8÷240.646÷197、列式计算下面各题。(1)一个数的5倍是11.5,这个数是多少?(2)两个数的积是15.36,其中的一个因数是12,另一个数是多少?8、两个筑路队,甲队8天修路6.48千米,乙队9天修路10.35千米,先说说哪个队的工作效率高些,再计算一下你说的对不对。9、一个六层塔,每一层点灯的盏数都是它的上一层的3倍,已知最顶层点了2盏灯,求这座塔共点了多少盏灯?小数除以小数1、商保留一位小数。(25)14.36÷2.7≈ (26)8.33÷6.2≈ (27)1.7÷0.03≈2、商保留二位小数。(28)32÷42≈(29)1.25÷1.2≈ (30)2.41÷0.7≈ 3填空。1.表示4个1.2是多少的乘法算式是() 表示4的1.2倍是多少的算式是()。4.因为8×0.5是求8的( )是多少,所以它的积比8()。5.用“四舍五入”把8.954保留两位小数约是(),精确到十分位约是( )。6.在乘法中,如果两个因数都不为0,一个因数不变,另一个因数扩大10倍,积就( ) 一个因数扩大100倍,另一个因数扩大10倍,积就()。7:(1)1.8×0.27的积有()位小数。(2)9.12÷0.24的商的最高位是在()位上。8、 0.7除以0.3,商求到十分位,商是( ),余数是( )。9. 1.46×0.99○1.4654÷0.18○54 0.57×1○0.577.6×1.01○7.6 35÷0.1○35×109.由48×32=1536,可知480×0.32=( ),0.48×3.2=( )10.由21.45÷15=1.43,可知2.145÷15=(),214.5÷0.15=( )。11。 0.56÷0.7=()÷7=( ) 0.56÷0.07=( )÷7=( )8.64÷3.6=()÷36=( )8.64÷0.36=( )÷36=( )12(1)积比△大的是()(△是一个大于0的数)①△×0.98 ②△×1 ③△×1.01(2)24×0.25用()计算最简便。 ①24×0.5×0.5②6×(4×0.25)③0.047×280 13①1.25×1600×4.5②32.3÷10.2÷9.5 ③1.6×2.5+0.8×2.5 ④(24.8+1.92)÷0.8(3)下面各题,积最小的是第( )题。 ①28×0.90 ②2.8×0.47 ③0.047×280 14计算。2.5×4= 0.36÷2= 0.15×8=60÷1.2= 0.382×100= 6.4÷1.6= 80×0.4= 7÷1.4= 0.32×0.5=1.2÷0.5= 0.3×0.3=3.6÷0.12=15(1)68.8÷4=(2)85.44÷16=(3)67.5÷15=(4)289.9÷18=(5)101.7÷9=(6)243.2÷64(7)16.8÷28=(8)15.6÷24(9)0.138÷15= (10)1.35÷27=(11)0.416÷32=(12)3.64÷52= (13)91.2÷3.8= (14)0.756÷0.18=(15)51.3÷0.27=(16)26÷0.13= (17)210÷1.4= (18)2.688÷0.56=、(19)10.625÷25=(20)126÷45= (21)10÷25= (22)2.7÷7.5=(23)15÷0.0616、填空。 (1)在除法中,如果除数扩大100倍,要使商不变,被除数也要( )。(2)两数相除的商是3.7,如果被除数和除数都扩大10倍,那么商是( )。(3)6.42÷0.41=()÷41,这是根据()的性质。(4)除法中,如果除数扩大10倍,要使商不变,被除数也要( )。(5)两个数相除的商是256,被除数是128,那么除数是( )。(6)两数相除的商是3.14,被除数扩大10倍,除数缩小到原来的,那么商是()17、在○里填上“>”“<”或“=”。 12.01÷1.02○12.01 0.36÷0.36○0.365.48÷0.8○5.48 10.8÷5.4○10.8 9.72÷0.08○9.72 0.99÷1.1○0.9918、 7.2÷0.04 0.636÷0.0530.21÷0.012 4.32÷3.6 78.48÷2.422.32÷0.36 75.6÷0.1857.38÷9.5 35.1÷7.8 9.6÷0.3219、(1)3.6除以0.48的商是多少(2)某数的1.5倍是0.456,这个数是多少(3) 两个因数的积是12.6一个因数是8.4,另一个因数是多少?(4)48.15与8.15的差里包含了多少个2.5? 20、篮球32元/个乒乓球0.4元/个排球12.8元/个 (1)一个排球的价钱是一个乒乓球 的多少倍 5.76÷0.48=( )20、根据576÷12=48, 57.6÷1.2=( ) 576÷1.2=()57.6÷0.12=()四年级数学下册小数除法测试题一、1、 0.3+0.25= 0.3-0.25=0.3×0.25= 0.3÷0.25=12.4÷0.4=4.32 ×0.1=8.2÷0.82=7÷3.5= 1 ÷3= 2×( )=0. ( )×1.6=4.8 2-2÷4= 2(除不尽的商,用循环小数表示)8.3÷0.35 8.64÷2418÷11 4.82×0.56(保留两位小数)、3、(16分)(1)12.5÷2.5÷0.4 (2)1.8×25+24÷1.5 (3)(7.7+1.54)÷0.7(4)10.8÷[(4.62-1.92)×4]二、填一填(20分)1、90分=( )小时3小时39分=( )小时2、 0.12÷0.3=( )÷3 0.672÷0.28=( )÷() 4 ×( )=134 ( )÷ 8=10.43、7.0306306??用循环小数的简便记法写作( ),保留三位小数是( )。4、牛奶5角一袋,1元5角可以买()袋,买7袋需要( )元。6、一个正方形的周长是10分米,它的边长是()分米,它的面积是( )平方分米。7、根据1.8÷0.9=2,写出一道乘法算式和一道除法算式。乘法算式:()除法算式( )。8、把6.35、6.35、6.305按照从小到大的顺序排列()。10、一个三位小数保留两位小数后的近似值是3.12,这个三位小数最大是()最小是( 它们相差( )。 三(4分)1、与4.83÷0.7的商相等的式子是( )A.483÷7 B.48.3÷7C.0.483÷72、两个数相除商是0.42,把被除数和除数同时扩大10倍,商是()。A 0.42 B.4.2C.42 3、2.345的小数部分第50位上的数字是()。A. 3B.4 C.54、一根18米长的绳子,对折再对折后,每段长是()。A.9米B.6米 C.4.5米四、判一判(4分)1、把一个小数精确到百分位,也就是保留两位小数。( )2、小数除以小数,商一定是小数( )3、每套西服用布2.8米,30米布可以做11套这样的西服。4、一堆石子60吨,一辆卡车最多能装4.5吨,运完这堆石子需要13趟。( )、五、1、在2004年的雅典奥运会上,我国射击运动员杜丽最后5枪打出52.5环的成绩勇夺该项目的奥运金牌,平均每枪打多少环? 2、一只河马的体重是5.1吨,是一头水牛体重的15倍。这只河马比这头水牛重多少吨? 3、妈妈在菜市场买了1.5千克带鱼,交给售货员11元钱后,找回0.95元。每千克带鱼多少元? 4、一间教室长8.6米,宽4.5米,用每块0.2平方米的方砖铺地,需要多少块? 5、 两种规格的牙膏的售价情况如下:如果买3支小牙膏,售价是8.7元;如果买4支小牙膏,售价是10.8元。购买哪种牙膏比较合算?

个人觉得学习编程最有效的方法是阅读专业的书籍,通过阅读专业书籍可以构建更加系统化的知识体系。
一直以来都很想深入学习一下C++,将其作为自己的主力开发语言。现在为了完成自己这一直以来的心愿,准备认真学习《C++ Primer Plus》。
为了提高学习效率,在学习的过程中将通过发布学习笔记的方式,持续记录自己学习C++的过程。
本章首先将介绍C++的基本类型:整数和浮点数。同时会介绍一种标识存储的数据的方法——使用变量;接着介绍如何在C++中进行算术运算;最后,介绍C++如何将值从一种类型转换为另一种类型。
为把信息存储在计算机中,程序必须记录3个基本属性:
信息将存储在哪里
要存储什么值;
存储何种类型的信息,
现在我们采用声明变量的方法来解决以上问题。当我们需要将商品的数量信息存储在计算机中时,可以通过如下代码实现:
int commodityCount;
commodityCount = 1000;
cout << "我们现在库存商品数量还有" << commodityCount <<"件" << endl;
通过上述2条语句告诉程序,它正在存储整数,并使用名称 commodityCount来表示该整数的值为1000。
能完成以上功能,是因为程序将在内存中找到一块能够存储整数的内存,并将该内存单元标记为commodityCount,同时将值1000复制到该内存单元中;然后,我们才可以通过commodityCount来访问该内存单元。
1、变量名
C++提倡使用有一定含义的变量名。如存储商品数量是建议使用使用类似commodityCount这类有含义的变量名,而不是随意使用a、b、c、x等与变量意义相差较大的变量名。
必须遵循几种简单的C++命名规则:
在名称中只能使用字母字符、数字和下划线(_)
名称的第一个字符不能是数字
区分大写字符与小写字符
不能将C++关键字用作名称
以两个下划线打头或以下划线和大写字母打头的名称被保留给实现(编译器及其使用的资源)使用。以一个下划线开头的名称被保留给实现,用作全局标识符。
C++对于名称的长度设有限制,名称中所有的字符都有意义,但有些平台有长度限制
具体示例如下:
int commodityCount;//有效
int CommodityCount;//有效,同时与第一个变量名不同
int COMMODITYCOUNT;//有效,同时与第一、第二个变量名不同
Int commodityCount;//无效,变量类型应为int而是不Int
int my_commodityCount;//有效
int _MycommodityCount;//有效,但以下划线和大写字母打头的名称被保留给实现(编译器及其使用的资源)使用
int double;//无效,变量名double是C++的关键字之一
int begin;//有效,但begin是Pascal(结构化编程语言) 的关键字
int __commodityCount;//有效,以两个下划线打头或以下划线和大写字母打头的名称被保留给实现(编译器及其使用的资源)使用
int the_very_best_variable_i_can_be_version_112;//有效
int commodity-Count;//无效,在名称中只能使用字母字符、数字和下划线(_)
如果想用两个或更多的单词组成一个名称,通常的做法是用下划线字符将单词分开或者采用驼峰命名法(除了第一个单词以外,其他单词的第一个首字母都为大写状态)。
2、整型
整数就是没有小数部分的数字,如1、99、-500和0。
不同C++整型使用不同的内存量来存储整数,以便根据程序的具体要求选择最合适的整型。使用的内存量越大,可以表示的整数值范围也越大。术语宽度(width)用于描述存储整数时使用的内存量。使用的内存越多,则越宽。另外,根据类型有无符号,可同时表示正值和负值或只能表示正值。
C++的基本整型(按宽度递增的顺序排列)分别是char、short、int、long和C++11新增的long long,其中每种类型都有符号和无符号版本,因此总共有 10种类型可供选择。下面更详细地介绍这些整数类型。由于char类型有一些特殊属性(它最常用来表示字符,而不是数字),因此将首先介绍其他类型。
64位操作系统中整型类型所占大小如下表:
序号
类型
所占字节数
表示范围
1
char
1
-128~127
2
unsigned char
1
0~255
3
short
2
-32,768~32,767
4
unsigned short
2
0~65,535
5
int
4
-2,147,483,648~2,147,483,647
6
unsigned int
4
0~4,294,967,295
7
long
4
-2,147,483,648~2,147,483,647
9
unsigned long
4
0~4,294,967,295
10
long long
8
-9,223,372,036,854,775,808~9,223,372,036,854,775,807
11
unsigned long long
8
0~18,446,744,073,709,551,615
3、整型short、int、long和long long
计算机内存由一些叫作位(bit)的单元组成。C++的short、int、long和long long类型通过使用不同数目的位来存储值、最多能够表示4种不同的整数宽度。
提示:实际上short是short int的简称,long是long int的简称。
C++的整型在不同位数操作系统所占位数存在差异,因此C++提供了一种灵活的标准,它确保了最小长度(从C语言借鉴而来),如下所示:
short至少16位
int至少与short一样长
long至少32位,且至少与证int一样长
long long至少64位,且至少与long一样长。
位与字节:
计算机内存的基本单元是位(bit)。可以将位看作电子开关,可以开,也可以关。关表示值0,开表示值1。8位的内存块可以设置出256种不同的组合,因为每一位都可以有两种设置,所以8位的总组合数为2×2×2×2×2×2×2×2,即256种。因此,8位单元可以表示0255或者-128127。每增加一位,组合数便加倍。
字节(byte)通常指的是8位的内存单元。从这个意义上说,字节指的就是描述计算机内存量的度量单位,1KB等于1024字节。然而,C++对字节的定义与此不同。C++字节由至少能够容纳实现的基本字将集的相邻位组成,也就是说,可能取值的数目必须等于或超过字符数目。如中文需要使用2个字节即16位字节。
通常,在老式IBMPC的实现中,int的宽度为16位(与short相同),而在Windows XP、Windows vista、Wndows 7、Macimlosh OS X、VAX和很多其他微型计算机的实现中,为32位(与long相同)。
要知道系统中整数的最大长度,可以在程序中使用C++工具来检查类型的长度。首先,sizeof运算符返回类型或变量的长度,单位为字节(运算符是内置的语言元素,对一个或多个数据进行运算,并生成一个值。例如,加号运算符+将两个值相加)。前面说过,“字节”的含义依赖于实现,因此在一个系统中两字节的int可能是16位,而在另一个系统中可能是32位。其次,头文件climits(在老式实现中为limits.h)中包含了关于整型限制的信息。具体地说,它定义了表示各种限制的符号名称。例如,INT_MAX为 int的最大取值,CHAR_BIT为字节的位数。下面我们将通过程序介绍如何使用这些工具,以及如何初始化,即使用声明语句将值赋给变量。
程序清单3.1:
// limits.cpp -- 部分整型限制
#include <iostream>
#include <climits>
int main()
{
using namespace std;
int n_int = INT_MAX; // 初始化n_int为最大int值
short n_short = SHRT_MAX; // SHRT_MAX是在<climits>文件中定义的符号
long n_long = LONG_MAX;
long long n_llong = LLONG_MAX;
// 使用sizeof运算符计算类型或变量的大小
cout << "int is " << sizeof (int) << " bytes." << endl;
cout << "short is " << sizeof n_short << " bytes." << endl;
cout << "long is " << sizeof n_long << " bytes." << endl;
cout << "long long is " << sizeof n_llong << " bytes." << endl;
cout << endl;
cout << "最大值:" << endl;
cout << "int: " << n_int << endl;
cout << "short: " << n_short << endl;
cout << "long: " << n_long << endl;
cout << "long long: " << n_llong << endl << endl;
cout << "Minimum int value = " << INT_MIN << endl;
cout << "Bits per byte = " << CHAR_BIT << endl;
return 0;
}
博主的环境运行结果如下(Windows10 64位):
int is 4 bytes.
short is 2 bytes.
long is 4 bytes.
long long is 8 bytes.
最大值:
int: 2147483647
short: 32767
long: 2147483647
long long: 9223372036854775807
Minimum int value = -2147483648
Bits per byte = 8
(1)运算符sizeof和头文件limits
sizeof运算符指出,在使用8位字节的系统中,int的长度为4个字节。使用sizeof计算类型长度时,应将名称放在括号中;但对变量名(如int)计算类型长度时,括号是可选的,代码如下:
cout << "int is " << sizeof (int) << " bytes." << endl;
cout << "int is " << sizeof n_int << " bytes." << endl;
头文件climies定义了符号常量来表示类型的限制,具体如下表:
序号
符号常量
表示
1
CHAR_BIT
char的位数
2
CHAR_MAX
char的最大值
3
CHAR_MIN
char的最小值
4
SCHAR_MAX
signed char的最大值
5
SCHAR_MIN
signed char的最小值
6
UCHAR_MAX
unsigned char 的最大值
7
SHRT_MAX
short的最大值
8
SHRT_MIN
short的最小值
9
USHRT_MAX
unsigned short的最大值
10
INT_MAX
int的最大值
11
INT_MIN
int的最小值
12
UINT_MAX
usigned int的最大值
13
LONG_MAX
Iong的最大值
14
LONG_MIN
long的最小值
15
ULONG_MAX
unsigned long的最大值
16
LLONG_MAX
long long的最大值
17
LLONG_MIN
long long的最小值
18
ULLONG_MAX
unsigned long long的最大值
在climits文件中包含与下面类似的语句行:
#define INT_MAX 32767
在C++编译过程中,首先将源代码传递给预处理器。#define编译指令的工作方式与文本编辑器或字处理器中的全局搜索并替换命令相似。C++可以使用const关键字声明常量,替换#define编译指令的作用。但如果要考虑C语言的兼容性,则还是需要使用#define编译指令。
(2)初始化
初始化可以将赋值与声明合并在一起。示例代码如下:
int n_int = INT_MAX;
int commodityCount = 1000;
int sum = commodityCount + 1;
除了以上继承自C语言的初始化语法,还有一种C++特有的初始化语法,代码如下:
int todayStockOutCount(20);
(3)C++11初始化方式
还有另一种初始化方式,这种方式用于数组和结构,但在C++98 中,也可用于单值变量,代码如下:
int todayStockOutCount = {20};
采用以上初始化方式,可以将=忽略,代码如下:
int todayStockOutCount
{20};
大括号中间没有任何值是,变量todayStockOutCount将被初始化为零。
通过大括号初始化器(可以使用等号也可以不使用),统一了C++11中任何类型的初始化都得到了。
4、无符号类型
前面介绍的4种整型都有一种不能存储负数值的无符号变体,其优点是可以增大变量能够存储的最大。例如,如果short表示的范围为-32768到+32767,则无符号版本的表示范围为0-65535。要创建无符号版本的基本整型,只需使用关键字unsigned来修改声明,代码如下:
unsigned int commodityCount;
C++确保了无符号类型的这种行为;但C++并不保证符号整型超越限制(上溢和下溢)时不出错,而这正是当前实现中最为常见的行为。
5、选择整型类型
C++提供了大量的整型,应使用哪种类型呢?通常,int被设置目标计算机处理起来效率最高的长度。如果没有非常有说服力的理由来选择其他类型,则应使用int。
6、整型字面值
C++能够以三种不同的计数方式来书写整数:基数10、基数8和基数16,C++使用前一到两位来标识数字常量的基数,下面我们将介绍分别在C++中的表示方法:
基数10(十进制数):第一位为1~9
基数8(八进制数):第一位为0,第二位为1~7
基数16(十六进制数):第一位为0,第二位为小写x或大写X,字符af和AF对应于10~15
提示:无论何总基数,最终都将以相同的方式存储在计算机中被存储为二进制数(以2为基数)。
7、如何确定常量的类型
编译器是如何知道常量的类型呢?答案是、除非有理由存储为其他类型(如使用了特殊的后缀来表示特定的类型,或者值太大,不能存储为int),否则C++将整型常量存储为int类型。
类型对应后缀如下表:
序号
类型
后缀
1
unsigned int
u或U
2
long
l或L
3
unsigned long
ul(任意顺序、大小写均可)
4
long long
ll或LL
5
unsigned long long
ull、Ull、uLL、ULL
8、char类型:字符和小整数
顾名思义,char类型是专为存储宇符 (如字母和数字)而设计的。很多系统支持的字符都不超过128个,因此用一个宇节就可以表示所有的符号。
在美国,最常用的符号集是 ASCII字符集,其中字符A的编码为65,字母M的编码为77。具体可查看以下代码:
// chartype.cpp -- char类型
#include <iostream>
int main()
{
using namespace std;
char ch; // 声明一个char变量
cout << "输入字符: " << endl;
cin >> ch;
cout << "你好!";
cout << "感谢 " << ch << "(" << (int)ch << ")字符。" << endl;
return 0;
}
运行结果如下:
输入字符:
M
你好!感谢 M(77)字符。
程序中输入的是M,输出的是M,编码77还需要转换为int类型。是因为输人时,cin将键盘输人的M转换为77;输出时,cout将值77转换为所显示的字符M;cin和cout的行为都是由变量类型引导的。
在C++中,书写字符常量的方式有多种。对于常规字符(如字母、标点符号和数字),最简单的方法是将字符用单引号括起。这种表示法代表的是字符的效值编码。例如:'A'为65,即字符A的ASCII码。
有些字符不能直接通过键盘输人到程序中。对于这些字符,C++提供了一种特殊的表示方法——转义序列,如下表所示:
序号
字符名称
ASCII符号
C++代码
十进制ASCII码
十六进制ASCII码
1
换行符
NL(LF)
\n
10
0xA
2
水平制表符
HT
\t
9
0x9
3
垂直制表符
VT
\v
11
0xB
4
退格
BS
\b
8
0x8
5
回车
CR
\r
13
0xD
6
振铃
BEL
\a
7
0x7
7
反斜杠
\
\
92
0x5C
8
问号
?
?
63
0x3F
9
单引号
'
'
39
0x27
10
双引号
"
"
34
0x22
注意:
应该像处理常规字符 (如M) 那样处理转义序列 (如\n)。也就是说,将它们作为字符常量时应用单引号括起;将它们放在字符串中时,不要使用单引号。现代系统并非都支持所有的转义序列,如输人振铃字符时,有些系统不会有反馈。
数字转义序列与特定的编码方式(如ASCII码)相关,建议使用适用于任何编码方式的符号转义序列表示,其可读性也更强。
C++实现支持一个基本的源字符集,即可用来编写源代码的字符集。通用字符名的用法类似于转义字符。通用字符名可以以\u或\U打头。\u后面是4个十六进制位,\U后面则是8个十六进制位。这些位表示的是字符的ISO 10646码点(编码字符集委员会发布,用来实现全球所有文种的统一编码 )。请注意,C++使用术语“通用编码名”,而不是“通用编码",这是因为应将\u00F6 解释为“Unicode码点为U-00F6 的字符”。
如果将 char用作数值类型,则unsigned char和char之间的差异将非常重要。
程序需要处理的字符集可能无法用一个8位的字节表示,如汉字系统。C++有两种处理方式:
如果大型字符集是实现的基本字符集,则编译器厂商可以将char定义为一个16位的字节或更长的字节。
一种实现可以同时支持一个小型基本字符集和一个较大的扩展字符集。8 位char 可以表示基本字符架,另一种类型wchar_t (宽字符类型)可以表示扩展字符集。
wchar_t 类型是一种整数类型,与另一种整型(底层[underlying]类型) 的长度和符号属性相同,它有足够的空间,可以表示系统使用的最大扩展字符集。这种类型依赖实现,因此在一个系统中,它可能是unsigned short,而在另一个系统中,则可能是int。iosteam头文件的最新版本提供了作用相似的工具wcin和wcout,可用于处理wchar_t流。另外,可以通过加上前缀L来指示宽字符常量和宽宇符串。
为了避免wchar_t类型随实现而异带来的影响,C++11新增了类型:char16_t和char32_t,两个类型均无符号,前者长为16位、使用前缀u、与\u00F6的通配字符名匹配,后者长32位。、使用前缀U、与\U0000222B的通配字符名匹配。
9、bool类型
bool类型名称来源于英国数学家Gcorge Boole,是他开发了逻辑律的数学表示法。
在计算中,布尔变量的值可以是 true或false。C++将非零值解释为 true,将零解释为false。示例如下:
int readyStatusCode = is_ready;,readyStatusCode值为1
bool is_start = 100;,因为100位非零,所以is_start为true
bool is_end = 0;,因为C++将零解释为false,所以is_end为false
前面提到:
C++可以使用const关键字声明常量,替换#define编译指令的作用。关键字const叫作限定符,因为它限定了声明的含义。
通过使用const关键字,声明一个符号常量Months表示月份数的,代码如下:
const int Months = 12;
常量(如Months) 被初始化后,其值就被固定了,编译器将不允许再修改该常量值。
常见命名规则:通过将常量名首字母大写,来提醒这是一个常量。
const优于#define的地方有3点分别是:能够明确类型;可以使用C++的作用域规则将定义限制在特定的函数或文件中;可以将const用于更复杂的类型,如后面将涉及的数组。
浮点类型,是C++的第二组基本类型。浮点数能够表示带小数部分的数字,提供的值范围也更大。
计算机将浮点值分成两部分存储。一部分表示值,另一部分用于对值进行放大或缩小。对于数字34.1245 和34124.5,它们除了小数点的位置不同外,共他都是相同的。可以把第一个数表示为0.341245(基准值)和100(缩放因子),而将第二个数表示为0.341245(基准值相同)和10000(缩放因子更大)。缩放因子的作用是移动小数点的位置,术语浮点因此而得名。C++内部表示浮点数的方法与此相同,只不过它基于的是二进制数,因此缩放困子是2的幂,不是10的幂。
1、书写浮点数
C++有两种书写浮点数的方式:
第一种是使用常用的标准小数点表示法,如12.34
第二种表示浮点值的方法叫作E表示法,其外观是像这样的:3.45E63,表示的是3450000,6被称为指数,3.45被称为尾数。指数为负数意味着除以10的乘方,而不是乘以10的乘方。因此,8.33E4表示的是0.000833。d.dddE+n指的是小数点向右移动n位,d.dddE-n指的是小数点向左移动n位。之所以称为“浮点”,就是因为小数点可移动。
2、浮点类型
C++也有3种浮点类型: float、 double和long double。这些类型是按它们可以表示的有效数位和允许的指数最小范围来描述的。有效位(significant figure) 是数字中有意义的位。
C++对于有效位数的要求是,float至少32位,double至少48位,且不少于float,long double至少和double一样多。这三种类型的有效位数可以一样多。然而,通常,float为32位,double为64位,long double为80、96或128位,另外,这3种类型的指数范围至少是-37到37。可以从头文件cfloat或float.h中找到系统的限制(部分C++实现没有)。
下面我们将演示了一下float和double类型及它们表示数字时在精度方面的差异 (即有效位数)。具体代码如下:
// floatnum.cpp -- 浮点类型
#include <iostream>
int main()
{
using namespace std;
cout.setf(ios_base::fixed, ios_base::floatfield); // 设置`cout`为定点输出格式,输出时按浮点格式,小数点后有6位数字
float tub = 10.0 / 3.0;
double mint = 10.0 / 3.0;
const float million = 1.0e15;
cout << "tub = " << tub;
cout << ", a million tubs = " << million * tub;
cout << ",\nand ten million tubs = ";
cout << 10 * million * tub << endl;
cout << "mint = " << mint << " and a million mints = ";
cout << million * mint << endl;
return 0;
}
运行结果如下:
tub = 3.333333, a million tubs = 3333333.250000,
and ten million tubs = 33333332.000000
mint = 3.333333 and a million mints = 3333333.333333
通常cout会删除结尾的零。例如,将3333333.250000 显示为3333333.25。调用cout.setf()将覆盖这种行为(其中ios_base::fixed是设置cout为定点输出格式,ios_base::floatfield是设置输出时按浮点格式,小数点后有6位数字)。
这里要注意的是,为何float的精度比double低,tub和mint都被初始化为10.0/3.0——3.333333333333333333由于cout打印 6 位小数,因此tub和mint都是精确的但当程序将每个数乘以一百万后,tub在第7个3之后就与正确的值有了误差。tub在7位有效位上还是精确的 (该系统确保float至少有6位有效位,但这是最糟糕的情况)。然而,double类型的变量显示了13个3,因此它至少有13位是精确的。由于系统确保15位有效位,因此这就没有什么好奇怪的了。另外,将tub乘以一百万,再乘以10后,得到的结果不正确,这再一次指出了float的精度限制。
3、浮点常量
默认情况下,在程序中书写浮点常量的时候,像8.24和2.4E8这样的浮点常量都属于double类型。如果希望常量为float类型或long double类类型,可以通过后缀进行明确。后缀如下表:
序号
类型
后缀
示例
1
double
默认无后缀
3.333或9.11e-31
2
float
f或F
3.333f或3.333F
3
long double
l或L
3.333l或3.333L
4、浮点数的优缺点
与整数相比,浮点数有两大优点:
它们可以表示整数之间的值
由于有缩放因子,它们可以表示的范围大得多
浮点数的缺点则是浮点运算的速度通常比整数运算慢,且精度将降低。具体见以下代码:
// fltadd.cpp -- 浮点数的精度问题
#include <iostream>
int main()
{
using namespace std;
float a = 2.34E+22f;
float b = a + 1.0f;
cout << "a = " << a << endl;
cout << "b - a = " << b - a << endl;
// cin.get();
return 0;
}
运行结果如下:
a = 2.34e+22
b - a = 0
按照程序逻辑理解,b - a的结果应该不为0,但实际上在计算机中受限于float类型的精度问题,在a为23位数字的基础上加1,对这个值不会有任何影响。
4、C++算术运算符
下面是C++提供的5种基本算术运算符:
运算符+对操作数执行加法运算。例如,4+20等于24。
运算符-从第一个数中减去第二个数。例如,12-3等于9。
运算符*将操作数相乘。例如,28*4等于112。
运算符/用第一个数除以第二个数。例如,1000/65 等于200。如果两个操作数都是整数,则结果为商的整数部分。例如,173等于5,小数部分被丢弃。
运算符%求模。也就是说,它生成第一个数除以第二个数后的余数。例如,19%6 为1,因为19是6的3倍余1。两个操作数必须都是整型,将该运算符用于浮点数将导致编译错误。如果其中一个是负数,则结果的符号满足如下规则: (a/b)*b+a%b = a。
(1)运算符优先级和结合性
当多个运算符可用于同一个操作数时,C++使用优先级规则来决定首先使用那个运算符。算术运算符遵循通常的代数优先级,先乘除,后加减。当然,可以使用括号来执行自己定义的优先级。
C++将看操作数的结合性 (associntivity ) 是从左到右,还是从右到左。当两个运算符的优先级相同时,乘除都是从左到右结合的。
注意:仅当两个运算符被用于同一个操作数时,优先级和结合性规则才有效。所以存在规则未明确的计算顺序,需要根据具体实现来看。这种情况下建议使用括号来明确定义优先级。
(2)除法分支
除法运算符(/)的行为取决于操作数的类型。如果两个操作数都是整数,则C++将执行整数除法。这意味着结果的小数部分将被丢弃,使得最后的结果是一个整数。如果其中有一个(或两个)操作数是浮点值,则小数部分将保留,结果为浮点数。
(3)求模运算符
求模运算符%返回整教除法的余数。它与数除法相结合,尤其适用于解决要求将一个量分成不同的整数单元的问题,例如将月份数量转换为年数。
(4)类型转换
C++丰富的类型允许根据需求选择不同的类型,这也使计算机的操作更复杂。为处理这种潜在的混乱。C++自动执行很多类型转换:
将一种算术类型的值赋给另一种算术类型的变量时,C++将对值进行转换
表达式中包含不同的类型时,C++将对值进行转换
将参数传递给函数时,C++将对值进行转换
编译器通过校验表来确定在算术表达式中执行的转换,下面是C++11 版本的校验表,编译器将依次查阅该列表:
如果有一个操作数的类型是long double,则将另一个操作数转换为long double。
否则,如果有一个操作数的类型是double,则将另一个操作数转换为double。
否则,如果有一个操作数的类型是float,则将另一个操作数转换为float。
否则,说明操作数都是整型,因此执行整型提升。
在这种情况下,如果两个操作数都是有符号或无符号的,且其中一个操作数的级别比另一个低则转换为级别高的类型。
如果一个操作数为有符号的,另一个操作数为无符号的,且无符号操作数的级别比有符号操作数高,则将有符号操作数转换为无符号操作数所属的类型。
否则,如果有符号类型可表示无符号类型的所有可能取值,则将无符号操作数转换为有符号操作数所属的类型。
否则,将两个操作数都转换为有符号类型的无符号版本。
整型级别:
有符号整型按级别从高到低依次为long long、long、int、short和signed char。
无符号整型的排列顺序与有符号整型相同。
类型char、signed char和unsigned char的级别相同。
类型bool的级别最低。
wchar_t、char16_t和char32_t的级别与其底层类型相同。
类型转换:C++允许通过强制类型转换机制显式地进行类型转换,强制转换有两种通用格式如下:
(typeName)value
typeName(value)
第一种继承自C语言,第二种格式是C++格式,新格式的想法是、要让强制类型转换就像是函数调用。
(5)C++中的auto声明
C++11新增了一个工具,让编译器能够根据初始值的类型推断变量的类型。为此,它重新定义了auto的含义。示例如下:
int commodityCount = 1000;
auto commodityCount = 1000;
以上两句代码都表示声明了一个int类型名为commodityCount的变量。
但其实auto声明的自动类型推断,在处理复杂类型,如标准模块库(STL)中的类型时,优势才能显现出来。

我要回帖

更多关于 一个数乘6再除以6结果还是这个数 的文章

 

随机推荐