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

南京网站设公司西安旅游攻略知乎

南京网站设公司,西安旅游攻略知乎,手机系统网站有哪些,深圳网站建设公司那家好目录 一、数据类型介绍 二、类型的基本归类 1.整形家族#xff1a; 2.浮点数家族#xff1a; 3.构造类型#xff1a; 4.指针类型 5.空类型#xff1a; 三、整形在内存中的存储 3.1 原码#xff0c;反码、补码 3.2 大小端介绍 四、浮点数在内存中的存储 ​编辑 4.… 目录 一、数据类型介绍 二、类型的基本归类 1.整形家族 2.浮点数家族 3.构造类型 4.指针类型 5.空类型 三、整形在内存中的存储 3.1  原码反码、补码 3.2  大小端介绍 四、浮点数在内存中的存储 ​编辑 4.1浮点数的存放 4.2浮点数取出的过程 一、数据类型介绍 基本的内置类型 char         //字符数据类型      short       //短整型                  int         // 整形 long         // 长整型 long long   // 更长的整形 float       // 单精度浮点数 double       // 双精度浮点数 通过下面的代码技术它们在不同平台下的存储空间大小 int main() {printf(64位平台 \n);printf(char类型 %d(字节)\n, sizeof(char));printf(short类型 %d(字节)\n, sizeof(short));printf(int类型 %d(字节)\n, sizeof(int));printf(long类型 %d(字节)\n, sizeof(long));printf(long long类型 %d(字节)\n, sizeof(long long));printf(float类型 %d(字节)\n, sizeof(float));printf(double类型 %d(字节)\n, sizeof(double));return 0; }运行结果 64位平台 char类型 1(字节) short类型 2(字节) int类型 4(字节) long类型 4(字节) long long类型 8(字节) float类型 4(字节) double类型 8(字节) int main() {printf(32位平台 \n);printf(char类型 %d(字节)\n, sizeof(char));printf(short类型 %d(字节)\n, sizeof(short));printf(int类型 %d(字节)\n, sizeof(int));printf(long类型 %d(字节)\n, sizeof(long));printf(long long类型 %d(字节)\n, sizeof(long long));printf(float类型 %d(字节)\n, sizeof(float));printf(double类型 %d(字节)\n, sizeof(double));return 0; }运行结果 32位平台 char类型 1(字节) short类型 2(字节) int类型 4(字节) long类型 4(字节) long long类型 8(字节) float类型 4(字节) double类型 8(字节) vs2022中long 类型在64位和32位都占4个字节但是在有些环境中的64位会占8个字节。 类型的意义 使用这个类型开辟内存空间的大小大小决定了使用范围。 如何看待内存空间的视角 二、类型的基本归类 1.整形家族 char                 unsigned char                 signed char short                 unsigned short [int]                 signed short [int] int                 unsigned int                 signed int long                 unsigned long [int]                 signed long [int] 2.浮点数家族 float double         long double 3.构造类型 数组类型 结构体类型 struct 枚举类型 enum 联合类型 union 4.指针类型 int * pi ; char * pc ; float* pf ; void* pv ; 5.空类型 void 表示空类型无类型 通常应用于函数的返回类型、函数的参数、指针类型 三、整形在内存中的存储 3.1  原码反码、补码 整数在内存中有三种表示方法原码、反码、补码。 三种表示方法均有符号位和 数值位 两部分符号位都是用 0 表示 “ 正 ” 用 1 表示 “ 负 ”而数值位 正数的原、反、补码都相同。 负整数的三种表示方法各不相同         原码直接将数值按照正负数的形式翻译成二进制就可以得到原码。反码将原码的符号位不变其他位依次按位取反就可以得到反码。补码反码1就得到补码 其中正整数的原反补相同 整数在内存中都是以补码的形式存储的。因为使用补码可以将符号位和数值位统一处理可以将加法和减法做统一处理CPU只有加法器补码和源码的互相转换的运算过程是相同的不需要额外的硬件电路。 观察下面两个整型变量在内存中的存储 ​ 我们可以看到对于a和b分别存储的是补码。但是我们发现顺序有点不对劲. 3.2  大小端介绍 什么大端小端 大端存储模式是指数据的低位保存在内存的高地址中而数据的高位保存在内存的低地址 中 小端 存储模式是指数据的低位保存在内存的低地址中而数据的高位 , 保存在内存的高地址中。 那为什么会存在大小端呢 为什么会有大小端模式之分呢这是因为在计算机系统中我们是以字节为单位的每个地址单元都对应着一个字节一个字节为8 bit。但是在 C 语言中除了 8 bit 的 char 之外还有 16 bit 的 short 型32 bit 的 long 型要看具体的编译器另外对于位数大于 8 位的处理器例如 16 位或者 32 位的处理器由于寄存器宽度大于一个字节那么必然存在着一个如何将 多个字节安排的问题 。因此就导致了大端存储模式和小端存储模式。         例如一个 16bit 的 short 型 x 在内存中的地址为 0x0010 x 的值为 0x1122 那么 0x11 为 高字节 0x22 为低字节。对于大端模式就将 0x11 放在低地址中即 0x0010 中 0x22 放在高 地址中即 0x0011 中。小端模式刚好相反。我们常用的 X86 结构是小端模式而 KEIL C51 则 为大端模式。很多的ARM DSP 都为小端模式。有些 ARM 处理器还可以由硬件来选择是大端模式 还是小端模式。 判断当前机器的字节序为大端 or 小端 #include stdio.h int check_sys() {int i 1;//提取整型的地址用char类型的指针进行截断如果为大端数据低位存储在高地址返回值为0//而小端数据低位存储在低地址返回值为1return (*(char*)i); } int main() {int ret check_sys();if (ret 1){printf(小端\n);}else{printf(大端\n);}return 0; } 四、浮点数在内存中的存储 根据国际标准IEEE电气和电子工程协会 754任意一个二进制浮点数V可以表示成下面的形式 (-1)^S * M * 2^E (-1)^S表示符号位当S0V为正数当S1V为负数。 M表示有效数字大于等于1小于2。 2^E表示指数位。 例如 十进制的5.0写成二进制是 101.0 相当于 1.01×2^2 。 那么按照上面V的格式可以得出S0M1.01E2。 十进制的-5.0写成二进制是 -101.0 相当于 -1.01×2^2 。那么S1M1.01E2。 对于32位的浮点数最高的1位是符号位S接着的8位是指数E剩下的23位为有效数字M 对于64位的浮点数最高的1位是符号位S接着的11位是指数E剩下的52位为有效数字M。 4.1浮点数的存放 M的存放对于有效数字M由于M是恒大于等于1、小于2的因此M存放在内存中的时候可以省略小数点前面的1只存放小数点后面的数字。 E的存放因为E是一个无符号整数如果它是8位则它的取值范围是0~255如果他是11位则它的取值范围是0~2047。但是在科学计数法中E是可以为负数的。所以IEEE 754标准规定当E存入内存时需要再加上一个中间数对于8位的E要加上127对于11位的E要加上1023。 4.2浮点数取出的过程 浮点数取出时M和S都可以正常拿取但是E有很多种不同情况  当E不为全0或不为全1时此时对于单精度浮点数来说E需要减去127对于双精度浮点数来说E的值还需要减去1023。M再在前面加上1和小数点。 当E为全0时因为E是加上127或1023后再放入内存中的因此此时的E减去127或1023后则为-127或-1023该浮点数的指数就为2^(-127)或者2^-1023这是一个很小的数字无限接近于0则表示为正负0以及接近0的很小的数字。 当E为全1时此时如果有效数字M全为0则表示正负无穷大正负取决于符号位s。 并不是所有的浮点数在内存中都能够精确的存储的有些浮点数只能够近似表示。因此我们在比较浮点数大小时不能够直接用来比较大小规定好允许的误差范围然后再判断要比较的数相减的绝对值是否在误差允许的范围内即可 int main() {float a 96.99;printf(%f, a);return 0; }运行结果 96.989998
http://www.ho-use.cn/article/10817707.html

相关文章:

  • 松江新城建设有限公司网站做商贸生意的人都去什么网站
  • 宿州产品网站建设aso推广方案
  • 网站开发商换了怎么在百度上面打广告
  • 南宁seo站内关键词优化个人微信网站怎么做
  • 合作建站方案建筑公司企业文化
  • 怎么查网站的所有权sqlite树莓派 wordpress
  • 网站优化的方法与技巧武威市市建设局网站建筑业管理
  • 自助建设wap网站中药材初加工平台
  • 保定网站制作价格自微网站
  • 搭建论坛网站建设手机银行官方网站
  • 温州seo网站推广wordpress 新建模板文件
  • 迁安做网站专业的聊城网站优化
  • 黄山网站建设怎么建自己的销售网站
  • 网站关键词一般设置几个山东济南seo整站优化公司
  • 网站域名在哪买中国建设银行网站首页 定投
  • 网站推广营销应该怎么做帮做非法网站
  • 开网络公司做网站挣钱么网站建设的财务计划
  • 南通做网站ntwsd外贸网站建设平台哪个好
  • nginx网站301重定向怎么做做网站的报价
  • 青岛网站如何制作厦门建设局官网首页
  • 焦作网站建设免费.net网站空间
  • 博客网站模板有哪些广州做大型网站建设
  • 怎样查网站谁做的wordpress tinymce
  • 个人网站页面模板做logo宣传语的网站
  • 朋友圈自己做的网站推广软文模板
  • 全国八大员报名官方网站做设计哪个网站可以接单
  • 娄底网站建设设计建设银行网站注册用户名不通过
  • apache 做网站北京学生聚集
  • 安徽设计公司排名sem seo招聘
  • 网站首页背景代码黑龙江农垦建设局网站