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

1空间做2个网站吗wordpress修改404页面

1空间做2个网站吗,wordpress修改404页面,企业信息平台查询,阜阳 做网站目录 一、整数在内存中的存储 二、大小端字节序和字节序判断 2.1为什么有大小端?​ 2.2请简述大端字节序和小端字节序的概念#xff0c;设计一个小程序来判断当前机器的字节序。#xff08;10分#xff09;-百度笔试题 方法一#xff08;char*强制类型转换#xff09…目录 一、整数在内存中的存储 二、大小端字节序和字节序判断 2.1为什么有大小端?​ 2.2请简述大端字节序和小端字节序的概念设计一个小程序来判断当前机器的字节序。10分-百度笔试题 方法一char*强制类型转换 方法二联合体 若想了解更多联合体的知识请见拙作 2.3unsign打印负数 2.4下列代码打印的结果 2.5下面代码的输出结果 三、浮点数在内存中的存储 3.1 浮点数存的过程​ IEEE 754 对有效数字M和指数E还有一些特别规定。​ ​至于指数E情况就比较复杂​ 3.2 浮点数取的过程​ 指数E从内存中取出还可以再分成三种情况​ E不全为0或不全为1​ E全为0​ E全为1​ 一、整数在内存中的存储 在讲解操作符的时候我们就讲过了下面的内容 整数的2进制表示方法有三种即 原码、反码和补码​ 三种表示方法均有符号位和数值位两部分符号位都是用0表示“正”用1表示“负”而数值位最 高位的一位是被当做符号位剩余的都是数值位。 正整数的原、反、补码都相同。 负整数的三种表示方法各不相同。如图 原码直接将数值按照正负数的形式翻译成二进制得到的就是原码。 反码将原码的符号位不变其他位依次按位取反就可以得到反码。 补码反码1就得到补码。​ 对于整形来说数据存放内存中其实存放的是补码 二、大小端字节序和字节序判断 大端存储模式是指数据的低位字节内容保存在内存的高地址处而数据的高位字节内容保存在内存的低地址处。 小端存储模式是指数据的低位字节内容保存在内存的低地址处而数据的高位字节内容保存在内存的高地址处。 根据此图判断此时机器为小端因为44作为低字节内容按顺序排在最后应放在低地址处。 2.1为什么有大小端?​ 这是因为在计算机系统中我们是以字节为单位的每个地址单元都对应着一个字节一个字节为8 bit 位但是在C语言中除了8 bit 的 char 之外还有16 bit 2个字节的 short 型32 bit 4个字节的 long 型要看具体的编译器另外对于位数大于8位的处理器例如16位或者32位的处理器由于寄存器宽度大于一个字节那么必然存在着一个如何将多个字节安排的问题。因此就导致了大端存储模式和小端存储模式。 2.2请简述大端字节序和小端字节序的概念设计一个小程序来判断当前机器的字节序。10分-百度笔试题 方法一char*强制类型转换 int check_sys() {int i 1;return (*(char*)i); } int main() {int ret check_sys();if (ret 1){printf(小端\n);}else{printf(大端\n);}return 0; } int i 1; 定义了一个整数 i 并赋值为1。在内存中整数通常占用4个字节这取决于系统但在这里我们假设为4字节。如果系统是小端的这四个字节的存储形式将是 01 00 00 00。如果是大端的存储形式将是 00 00 00 01 return ((char)i); 这行代码做了以下操作 1、i: 获取 i 的地址。 2、(char*)i: 将 i 的地址转换为 char 指针。由于 char 是1字节的我们可以通过 char 指针来        访问整数的每一个字节。 3、(char)i: 通过 char 指针解引用获取整数的第一个字节。 如果系统是小端的那么整数的第一个字节将是 1或者 01 in hex。如果是大端的那么整数的第一个字节将是 0或者 00 in hex。 在 main() 函数中根据 ret 的值即整数的第一个字节判断系统是大端还是小端并打印相应的结果。 方法二联合体 若想了解更多联合体的知识请见拙作 返回1是小端返回0是大端 如果系统是小端的那么在内存中存储这个整数的最低字节也就是字节 c将会是1因为最低字节存储在最低的内存地址处。而如果系统是大端的那么最低有效字节将会是0。 int check_sys() {union{int i;char c;}un;un.i 1;return un.c; }int main() {int ret check_sys();if (ret 1){printf(小端\n);}else {printf(大端\n);}return 0; } 2.3unsign打印负数 int main() {char a -128;//10000000000000000000000010000000//11111111111111111111111101111111//11111111111111111111111110000000//10000000 - a//打印时发生整型提升//11111111111111111111111110000000//sign char 的取值范围:-128~127//unsigned char的取值范围:0~255printf(%u\n, a);//4,294,967,168//%u是十进制的形式打印无符号的整数return 0; } char类型存储的顺序如下  2.4下列代码打印的结果 int main() {char a[1000];int i;for (i 0; i 1000; i){a[i] -1 - i;}printf(%d, strlen(a));//255return 0; } char的范围-128~127 a[1]~a[1000]的值规律如下 -1 -2 -3 ...... -128 127 126 125 ...... 5 4 3 2 1 0 -1 -2 ...... -128 127 126 ......5 4 3 2 1…… strlen求字符串长度找的是\0\0的ASCII码值是0其实找的就是0所以到0就终止 所以strlen计算的长度为128127 255 2.5下面代码的输出结果 int main() {int a[4] { 1, 2, 3, 4 };//小端环境int* ptr1 (int*)(a 1);int* ptr2 (int*)((int)a 1);printf(%x ,ptr1[-1]);printf(%x, *ptr2);return 0; } ptr1[-1]-- *(ptr1 - 1)--*((a1) - 1)--4  三、浮点数在内存中的存储 举例来说 十进制的5.0写成二进制是 101.0 相当于 1.01×2^2 。​ 那么按照上面V的格式可以得出S0M1.01E2。​ 十进制的-5.0写成二进制是 -101.0 相当于 -1.01×2^2 。那么S1M1.01E2。​ IEEE 754规定​ 对于32位的浮点数最高的1位存储符号位S接着的8位存储指数E剩下的23位存储有效数字M int main() {int n 9;float* pFloat (float*)n;//int*printf(n的值为%d\n, n);//9printf(*pFloat的值为%f\n, *pFloat);//0.000000*pFloat 9.0;printf(num的值为%d\n, n);//1091567616printf(*pFloat的值为%f\n, *pFloat);//9.000000return 0; } 创建了一个浮点数指针 pFloat 并将其指向 n 的内存地址。此时pFloat 指向的内存中存储的是一个整数值 9。 通过 pFloat 打印该值时由于 pFloat 是一个浮点数指针所以它会尝试将内存中的值解释为浮点数。在大多数系统上整数 9 和浮点数 9.0 在内存中的表示是不同的。 接下来你通过 pFloat 将该内存位置的值设置为 9.0。这意味着你现在改变了原来存储整数 9 的内存使其现在包含一个浮点数的表示。 再次尝试打印整数 n 的值时它会尝试将内存中的浮点数表示解释为一个整数。这就是为什么你得到了一个奇怪的数字 1091567616这个数字是 9.0 的 IEEE 754 单精度表示形式解释为整数时的结果。 而当打印 *pFloat 的值时它正确地显示为 9.0。 3.1 浮点数存的过程​ 但是因为存储有可能会改变原先的值。 10:       5.5 2:        101.1 科学计数法1.011 * 2^2           (-1)^0 *1.011 *2^2 S 0 E 2 M 1.011 int main() {float f 99.7f;printf(%f\n, f);////0 10000001 01100000000000000000000//0x40 B0 00 00//1.01100000000000000000000 *2^2return 0; } IEEE 754 对有效数字M和指数E还有一些特别规定。​ 前面说过 1≤M2 也就是说M可以写成 1.xxxxxx 的形式其中 xxxxxx 表示小数部分。​ IEEE 754 规定在计算机内部保存M时默认这个数的第一位总是1因此可以被舍去只保存后面的xxxxxx部分。比如保存1.01的时候只保存01等到读取的时候再把第一位的1加上去。这样做的目的是节省1位有效数字。以32位浮点数为例留给M只有23位将第一位的1舍去以后等于可以保存24位有效数字。 ​至于指数E情况就比较复杂​ 首先E为一个无符号整数unsigned int​ 这意味着如果E为8位它的取值范围为0~255如果E为11位它的取值范围为0~2047。但是我们知道科学计数法中的E是可以出现负数的所以IEEE 754规定存入内存时E的真实值必须再加上一个中间数对于8位的E这个中间数是127对于11位的E这个中间数是1023。比如2^10的E是10所以保存成32位浮点数时必须保存成10127137即10001001。 3.2 浮点数取的过程​ 指数E从内存中取出还可以再分成三种情况​ E不全为0或不全为1​ 这时浮点数就采用下面的规则表示即指数E的计算值减去127或1023得到真实值再将有效数字M前加上第一位的1。​ 比如0.5 的二进制形式为0.1由于规定正数部分必须为1即将小数点右移1位则为1.0*2^(-1)其 阶码为-1127(中间值)126表示为01111110而尾数1.0去掉整数部分为0补齐0到23位 00000000000000000000000则其二进制表示形式为:​ 1 0 01111110 00000000000000000000000 以下两种了解便可 E全为0​ 这时浮点数的指数E等于1-127或者1-1023即为真实值有效数字M不再加上第一位的1而是还 原为0.xxxxxx的小数。这样做是为了表示±0以及接近于0的很小的数字。​ 1 0 00000000 00100000000000000000000 E全为1​ 这时如果有效数字M全为0表示±无穷大正负取决于符号位s​ 1 0 11111111 00010000000000000000000 好了关于浮点数的表示规则就说到这里。 今天就先到这里了 看到这里了还不给博主扣个 ⛳️ 点赞☀️收藏 ⭐️ 关注 你们的点赞就是博主更新最大的动力 有问题可以评论或者私信呢秒回哦。
http://www.dnsts.com.cn/news/26768.html

相关文章:

  • 英文网站正在建设页面永州网站建设企业
  • 建设招标项目常挂网站有哪些哪个网站开发小程序
  • 数据库与网站建设做公众号的网站有哪些
  • 营销型网站.网站运维主要做些什么工作
  • 网站建设百度推广长宁网站建设价格
  • 学校类网站建设的分析网络推广有几种方法
  • 电子商务网站建设与管理答案wordpress最强的教育网站
  • 合肥网站建设网站模板主机做网站
  • 做棋牌推广网站违反不如何做网站源码备份
  • 太原流量大的网站杭州网站建设维护
  • 惠州网站建设学校seo优化易下拉排名
  • 杭州手机模板建站温州公司网站开发
  • 网上服装商城网站建设方案深圳网站优化课程哪里学
  • 网站建设选用平台分析网站关键词排名外包
  • 建网站英语一起爱又一个wordpress站点
  • 电子商务网站建设书宾利棋牌在哪个网站做的广告
  • 广州网站建设天维15年做啥网站能致富
  • 加盟网站建设服务网站设计 验收标准
  • 成都自助建站软件广州aso优化
  • 网站二维码制作asp 网站开发 软件
  • 网络营销的支持条件是什么网站建设优化服务器
  • 网站的建立步骤展示型网站功能
  • 太原制作公司网站wordpress 会话
  • wordpress演示站教程wordpress邀请码过期
  • wordpress网站有哪些旅游主题网站怎么做
  • 青岛城阳网站开发公司简介ppt内容
  • 工体做网站的公司淘宝买网站开发不行吗
  • 杭州定制网站建设梅林多丽工业区做网站
  • 怎么用word做网站工业设计好找工作吗
  • 网站维护提醒php文件苏州做儿童场馆门票包票的网站