当前位置: 首页 > news >正文

做网站后期维护工资贴吧wordpress缩略图变形

做网站后期维护工资贴吧,wordpress缩略图变形,旅游文创产品设计,高端网站开发设计简介3.3 数值数据类型 从每天早上睁开眼睛的那一刻开始#xff0c;我们几乎每时每刻都在与数字打交道#xff1a;从闹钟上的6点30分#xff0c;到上班坐的216路公共汽车#xff1b;从 新闻中说的房价跌到了100元每平米到回家买菜时的西红柿3.5元一斤。我们生活在一个充满数字的…3.3 数值数据类型 从每天早上睁开眼睛的那一刻开始我们几乎每时每刻都在与数字打交道从闹钟上的6点30分到上班坐的216路公共汽车从 新闻中说的房价跌到了100元每平米到回家买菜时的西红柿3.5元一斤。我们生活在一个充满数字的世界。程序是对现实世界的描述与表达自然也会有很多数 字需要表达。为了做到这一点C提供了丰富多样的数值数据类型从整数到小数、从单精度浮点数到双精度浮点数、从有符号数到无符号数。有了这些数值数 据类型我们就可以定义各种变量来表示现实世界中的各种数字了。 3.3.1 整型数值类型 在现实世界中最常见的数字应该是各种大大小小的整数了而在C中我们用整型数值类型来表示现实世界中的整数。根据这些数据类型所占用的内存资源多少和取值范围的不同整型数值类型又被分为以下四种。 1. 基本型 其类型说明符为intinteger在内存中占4个字节其取值范围从-2147483648到2147483647 基本上包含了我们最常见的整数能够满足我们在程序中对表达整数的需要。同时又因为它是CPU原生支持的整型类型所以处理起来最快。因此int是我 们最为常用的整型数值类型。 特别注意数据类型的字节数在不同环境下可能有不同值 需要注意的是我们在这里所讨论的各种数据类型所占用的内存字节数只是在典型情况32位操作系统32位主流编译器下的字节数。在一些特殊环 境64位操作系统、特殊的编译器下各种数据类型所占用的字节数可能有所不同。所以要想获得某种数据类型在当前环境下所占用的字节数最好的方法是 使用sizeof关键字动态地计算其实际的字节数而不是使用某个固定的字节数。具体方法可以参看后文对sizeof的介绍。 2. 短整型 有时候我们需要表达的整数只是在一个比较小的范围内比如我们要表达一个学生的成绩最小可以到0而最大也只能到 100如果这时仍旧使用int这种取值范围比较大的数据类型来表示就显得有点资源浪费了。现在正在倡导创建节约型社会而C世界也不例外。为了表 示这种取值范围相对较小的整数C提供了短整型数据类型其类型说明符为short或short int所占内存字节数只有int类型的一半也就是两个字节。自然地其取值范围也相应地缩小为从- 32768到32767我们可以用它来表达生活中常见的整型数值。但是相对于int类型short类型的处理速度要慢一些而内存又相对比较便宜 所以我们往往为了性能而牺牲空间更多的使用int类型来代替short类型。 3. 长整型 在某些情况下我们并不知道我们需要表达的整数到底有多大有可能是几千也有可能是几千个亿。在这种情况下我们总是希望得 到一个当前平台支持的最大整型数值类型以避免因取值范围太小而造成的错误。在C中我们用长整型来表示当前平台原生支持的最大整型数值类型。其类型 说明符为long或long int。在32位平台上它占用4个字节的内存其取值范围与int相同。而在64位平台上其占用的内存扩展为8个字节取值范围也相应地增大为骇人听 闻的从-9223372036854775808到9223372036854775807绝对满足我们对整数取值范围的需要。 4. 长长整型 在C中为了表示现实世界中的某些特别大特别大的整数比如某个星系的星球总数我们还需要用到取值范围更大的长长整型。 它的类型说明符是long long或long long int在内存中占8个字节。其取值范围已经是个天文数字所以它也只是更多地用于天文计算等特殊的科学计算中。 另外还可以用关键字unsigned或者signed对这些整型数据类型进行修饰构成无符号或有符号的整型数据类型。所谓 的有无符号是指这些数值在内存中的第一位是用来表示正负符号还是用来表示数值。在默认情况下上面所介绍的整型数据类型都是有符号的只要在其类型说明 符之前加上unsigned关键字就成为了对应的无符号整型数据类型。 int a; // 默认为有符号int类型 signed short b; // 有符号short类型 unsighed long c; // 无符号long类型 各种无符号类型所占用的内存空间与相应的有符号类型占用的内存空间是相同的。但由于无符号类型省去了符号位故不能表示负数而相应的它所能够表 示的正数范围会扩大到原来的两倍。当我们事先知道要表示的整数不会出现负数的时候可以使用unsigned修饰某个整型数值类型使其成为一个无符号的 数据类型扩展其在正数上的取值范围。表3-3列出了在典型的32位平台上C中各种整型数值数据类型、取值范围、位数和使用规则。 表3-3 整型数值类型 数 据 类 型 位数 取 值 范 围 使 用 规 则 int 32 -2147483648 ~ 2147483647 最常用的也是处理速度最快的整型数值类型用来表示常见的整型数值 signed int 32 -2147483648 ~ 2147483647 在使用上等同于int类型所以很少使用基本上都是直接使用int类型 unsigned int 32 0 ~ 4294967295 无符号的int类型只能表示正整数。当要表示的整数只有正数值的时候可以使用无符号数据类型 short int 16 -32768 ~ 32767 通常简写为short用以表示范围较小的整数以节省内存资源但处理速度有所减低 signed short int 16 -32768 ~ 32767 — unsigned short int 16 0 ~ 65535 — long int 32 -2147483648 ~ 2147483647 通常简写为long它代表了当前平台上CPU原生支持的最大整型数据类型。在32位平台上long和int的取值范围是相同的只是在64位操作系统上两者有差别这一点在开发跨平台的应用程序时需要注意 signed long int 32 -2147483648 ~ 2147483647 — unsigned long int 32 0 ~ 4294967295 — long long int 64 -9223372036854775808 ~ 9223372036854775807 比long还要long的整数我们不用去数它到底有多少位只需要知道当要表示很大很大的整数时就可以用它 知道更多用sizeof牌体重计为数据类型量体重 在现实世界中的人们无论高矮都有个体重人们根据自己的体重来决定穿多大尺寸的衣服而在C世界中的各种数据类型同样也都有一个体重而数据类型的体重决定了它需要占用多少字节的内存空间。一个数据类型所占用的内存字节数也就是它的体重。 为什么我们需要知道数据类型的体重在通过指针直接操作内存对数据进行读写访问的时候我们往往需要知道这种数据类型所占 用的内存字节数这样我们才能为这些数据分配合适的内存资源就像我们要为一个人做衣服先要知道他的身高一样。例如我们想动态地申请一段内存来保存 1024个long类型的数据这时我们就需要根据每个long类型数据占用的内存字节数来计算一共需要申请多少字节的内存资源来存放这些数据。虽然我们 知道long类型的字节数大多数时候是4个字节但是我们不能在程序中直接使用这个从天而降的魔数Magic Number那样一个不知从何而来的数字会让程序的可维护性变得很差同时数据类型占用的字节数就像人的体重一样是会根据环境的变化而发生变化 的并不是所有平台上的long类型都是4个字节。如果我们在程序中用固定的数字4来表示long数据类型的字节数在某些平台上这个程序也许会运行正 常但当这个程序移植到另外一个平台时将有可能因为long数据类型字节数的不同而产生错误。为了提高程序的可维护性保证程序的可移植性我们必须在 代码中动态地获得数据类型在当前平台上的字节数并最终计算出需要的内存资源总数。 所有这些关于数据类型字节数的问题我们都可以使用C提供给我们的sizeof牌数据类型体重计来一劳永逸地轻松解 决。sizeof实际上是C中的一个操作符它可以对一个数据类型或者这个数据类型的一个变量或数组进行操作从而获得这个类型或者变量数组实际 占用的内存字节数。例如我们在用memset()函数清零某个数组时通常用它来计算这个数组的字节数 #include cstring // 引入memset()函数所在的头文件// … // 定义数组 int res[1024]; // 用sizeof计算res占用的字节数 memset(res,0,sizeof(res)); 这里我们在用memset()函数对数组res进行清零操作时第一个参数是数组名也就是数组的首地址第二个参数是初始值通常是0第三个参 数就是用sizeof关键字计算出来的res数组所占用的字节数了。幸亏有sizeof这个体重计要不然我们这里要写成更复杂的“1024*4”。这种 复杂的形式虽然也同样能够达到计算数组体积的目的但是很容易出错且毫无可移植性可言。而这也正是sizeof体重计受到程序员们钟爱的原因。 sizeof牌数据类型体重计不仅可以获得内建数据类型例如int、long和double等的体重它同样也可以获得自定义的结构体或者类所占用的字节数包含因为字节对齐而添加的字节数。例如 // 定义一个结构体 struct Human {char cName[3]; // 3个字节// char pad; // 这里因字节对齐编译器补齐一个字节int nAge; // 4个字节 };// 声明一个结构体变量 Human huZengmei; // 输出结构体的字节数为8包含因字节对齐而添加的一个字节即3148 coutHuman结构体占用的字节数是sizeof(Human)endl; // 输出结构体变量的字节数与结构体的字节数相同 coutHuman对象占用的字节数是sizeof(huZengmei)endl; sizeof牌体重计是如此好用它应该应用在任何需要知道某个数据类型或者变量包括数组所占用内存空间的地方例如用memset()函数 对数组进行清零操作根据某个基本数据类型占用的字节数来判断当前硬件平台是32位还是64位等以此来避免人为地指定数据类型的字节数可能带来的可维护 性和可移植性问题。 图3-2 sizeof牌体重计 3.3.2 浮点型数值类型 现实生活中的数字除了表示公共汽车路数的216这种整数外更多地是表示西红柿价格的3.5这种小数。而在C中我们使用浮点型数值类型来表示小数。根据取值范围的不同C中的浮点型数值类型可以分为单精度型、双精度型和长双精度型三种。 1. 单精度型 其类型说明符为float。单精度浮点型数值类型占4个字节的内存空间其取值范围为-3.4E38 ~ 3.4E38。这里需要注意的是因为浮点型数值类型包括后面的double和long double类型无法精确地表示零值所以其取值范围实际上并不连续在中间接近零值的地方被分为了正负两部分。因为受到计算机存储浮点数机制的限 制使用float类型表示浮点数时能够保证精确到小数点前后至少6位有效数字最多可以达到7位有效数字。例如 float fPrice 3.5; // 用float类型的变量fPrice表示西红柿3.5元一斤 知道更多为什么小数在C中被称为浮点数 在C中我们将小数称为浮点数而将表示小数的数据类型称为浮点型数值类型。这里大家一定会问为什么小数被称为浮点数而其中的“浮”又是什么意思呢 这一切都与小数在中的表达方式有关系。所谓的浮点是相对于定点而言。比如我们要在中表达这样两个小数 100000000000.0 0.000000000001 如果采用定点小数点固定的表达方式我们需要保存成如下的形式 100000000000.000000000000 000000000000.000000000001 采用这种方式我们不得不将每一位上的数据都原原本本地保存下来这其中的某些数据对于小数的数值和精度都毫无意义反而却浪费了宝贵的存储资源。 为了解决这个问题C采用了一种新的保存方式将数字表示成指数形式保存每个数字的有效数字和指数。按照这种方式上面的两个数可以保存成如下的形 式 小数 1 指数 11小数点往左移动了11位 小数 1 指数 -12小数点往右移动了12位 通过小数点位置的移动我们只需要保存小数的有效数字和小数点移动的位置就可以以更加简洁的方式保存下整个数字。因为这种表达方式中的小数点是浮动float的所以小数也被称为浮点数。   2. 双精度型 其类型说明符为double。双精度浮点型数值类型占8 个字节的内存空间是单精度浮点数值类型的两double倍所以双精度类型不仅取值范围更大可以达到-1.7E3081.7E308同时 其精度也更高可以精确到小数点前后15位有效数字最多可以达到16位。例如 double fD 0.0000003; // 用double类型的变量表示支原体细胞的直径 3. 长双精度型 其类型说明符为long double。长双精度浮点型数值类型占12个字节的内存空间其数值范围可以达到天文数字级别的-1.2E49321.2E4932所以这种类型更多地只是用于科学计算中日常开发较少用到。 表3-4列出了在典型的32位平台上浮点型数值的数据类型、位数、精确数字位数、取值范围和使用规则。 表3-4 浮点型数值类型 数 据 类 型 位数 有效数字 取 值 范 围 使 用 规 则 float 32 6-7 -3.4E38 ~ 3.4E38 如果要表示的浮点数数值不是特别大精度要求也不是很高比如我们日常生活中遇到的各种小数就可以使用float类型来表示不仅可以满足需要还可以节省内存空间提高性能 double 64 15-16 -1.7E308 ~ 1.7E308 如果要表示的浮点数数值比较大或精度要求比较高可以使用double类型来表示虽然占用了更多内存空间但是可以保证取值范围和数据精度 long double 96 18-19 -1.2E4932 ~ 1.2E4932 如果要表示天文数字就用它 知道更多如何产生随机数 所谓随机数通俗地讲就是由计算机通过一定的随机数算法所产生的按照某种规律分布平均分布或正态分布的某个大小范 围内的数字。在程序设计中随机数广泛地被应用在测试、游戏、仿真以及安全等领域。所以掌握各种随机数的产生方式也成为我们使用C进行开发的一个 必备技能。 在C11中一个随机数的产生需要由随机引擎engine对象和分布distribution对象两部分共同 完成。其中分布对象负责随机数的取值范围和分布。比如使用uniform_int_distribution分布表示将引擎产生的随机数字平均分布 在某个范围内而使用normal_distribution分布则表示将这些随机数字正态分布在某个范围。相应地引擎对象则负责根据分布对象确定的 取值范围和分布产生相应的随机数字。当我们在程序中确定随机数产生所需要的引擎对象和分布对象后就可以用引擎对象作为参数调用分布对象这个函数对象 从而得到我们所需要的随机数了。例如网站登录验证码的产生就需要用到随机数 // 引入随机数引擎和分布所在的头文件 #include random #include iostream// 使用std名字空间 using namespace std;int main() {// 定义一个默认的随机数引擎default_random_engine reng; // 构建一个从0到25之间的平均分布uniform_int_distributionint uni_dist(0,25); // 使用random_device设置随机数引擎的种子// 以防止每次运行都产生相同的伪随机数序列random_device rnd_device; reng.seed(rnd_device()); // 验证码一共4位const int n 4; char code[n]; // 保存验证码的字符数组// 提示输入验证码cout请输入下面的验证码endl;// 利用for循环产生4个验证码字母字符for (int i 0; i n; i){// uni_dist(reng)表示让reng引擎按照uni_dist分布// 产生取值在0到25之间呈平均分布的随机数// 然后在‘A’的基础上向后偏移就得到了随机的验证码字母字符code[i] A uni_dist(reng); // 输出验证码字母字符coutcode[i];}// …return 0; } 在这段程序中我们首先引入了C标准库中关于随机数的头文件random然后我们就可以定义相应的随机数引擎对象 reng和分布对象(uni_dist)在定义分布对象的同时我们以构造函数参数的形式确定了随机数的取值范围。有了它们就可以用引擎对象 reng作为参数调用uni_dist分布对象这个函数对象最后得到的就是我们需要的在0和25范围之内平均分布的随机数了。在这里我们还利用了 ASCII表中字母字符呈现连续分布的特性在字符‘A’的基础上加上一个随机数就得到了我们最终想要的随机的字母字符。值得特别提醒的是在产生随 机数之前我们必须用引擎对象的seed()函数设置随机种子否则每次运行所产生的随机数序列都是一样的那样就失去了随机的意义了。 另外这个程序只是利用随机数产生了验证码字符接下来我们还需要接收用户的输入并与当前的验证码进行比较以此来判断用户输入是否正确。这些工作就留给大家在学习了后面的内容各种控制结构、字符串处理等之后自己动手来完成了。相信大家很快就可以做到这一点。
http://www.zqtcl.cn/news/845251/

相关文章:

  • 用vue做商城网站常用的js教做发型的网站
  • 江西省寻乌县建设局网站广州网站建设一般多少钱
  • 做网站公司郑州郑州的网站建设公司哪家好网站开发word
  • 网页转向功能网站wordpress搭建小说站
  • 北京华夏建设有限公司网站wordpress建站安全吗
  • 怎样做电子商务网站直接通过ip访问网站
  • 白沟17网站一起做网店有啥方法下载wordpress主题
  • 找人做网站毕业设计用于做网站头的图片
  • 黄埔做网站江西省建设工程造价管理局网站
  • 适合网站开发的框架网盘视频直接做网站
  • wordpress菜谱网站网站服务公司
  • 跳转网站代码互联网平台构建怎么写
  • 服务器网站建设维护uemo网站源码
  • 浏览器如何做购物网站百度快照提交入口
  • 网站建设的主要步骤有哪些金华网站建设平台
  • 扁平化网站布局稷山网站制作
  • 做画找图网站包装策划与设计专业
  • 适合大学生做的兼职网站深圳企业名录大全
  • 电脑做网站用什么软件培训心得体会2000字
  • 手机网站开发公司哪家最专业html5商业网站开发北大青鸟
  • 做爰全过程教育网站建筑工程公司名字起名大全
  • 如何作做网站网站建设需要掌握什么技术
  • 广州网站建设推广公司做网站怎么合并单元格
  • 网站建设策划书的编制怎样建网站域名
  • 公司做网站的费用怎么记账网站源码html
  • 网站流量数据东莞松山湖华为招聘信息
  • 跨境电商一站式服务平台wordpress用旧的编辑器
  • 上海外贸网站推广方法爱站关键词
  • 网站页面框架设计企业建设流程
  • 网站做留言板如何推广小程序商城