pc端网站建设网页制作公司的服务

news/2025/10/2 1:47:31/文章来源:
pc端网站建设,网页制作公司的服务,二维码导航网站源码,关于seo关键词选择有哪些方法目录 数据类型介绍 类型的基本归类 整形家族: 浮点数家族: 构造类型: 指针类型 空类型: 整形在内存中的存储 原码、反码、补码 大小端介绍 什么大端小端: 为什么有大端和小端: 练习 浮点型在内存中的储存 一个例子 浮点数存储规则 数据类型介绍 前面我们…目录 数据类型介绍 类型的基本归类 整形家族: 浮点数家族:  构造类型:  指针类型  空类型:  整形在内存中的存储 原码、反码、补码 大小端介绍 什么大端小端: 为什么有大端和小端:  练习 浮点型在内存中的储存 一个例子 浮点数存储规则 数据类型介绍 前面我们已经学习了基本的内置类型: char               //字符数据类型  short             //短整型 int                 //整形  long             //长整型 long long    //更长的整形 float            //单精度浮点数 double       //双精度浮点数 以及他们所占存储空间的大小。 类型的意义: 1. 使用这个类型开辟内存空间的大小(大小决定了使用范围)。  2. 如何看待内存空间的视角。 首先数据类型的作用是为了创建变量通过指定数据类型我们可以为变量分配适当的内存空间并确定变量可以存储的数据范围和操作。例如字符数据类型(char)用于存储单个字符整数数据类型(int)用于存储整数值浮点数数据类型(float)用于存储小数值等等。  其次数据类型还可以用于函数的返回值类型。空类型(void)表示没有返回值这在函数定义和调用中起到了统一的作用。 此外指针类型也是一种重要的数据类型它用于存储内存地址可以指向其他数据类型的变量。指针类型的大小在32位系统中通常为4个字节它可以用于动态内存分配和访问复杂的数据结构。 总之数据类型在编程中起到了定义和管理数据的作用它们帮助我们更好地理解和操作数据。  类型的基本归类 整形家族: char 字符在内存中存储的是字符的ASCII码值ASCII码值是整型           所以字符类型归类到整型        unsigned char        signed char //char ! signed char 没有具体规定 取决于编译器 short         unsigned short [int]         signed short [int]  //short   signed short int         unsigned int         signed int  //int   signed int long         unsigned long [int]         signed long [int] 浮点数家族:  float double long double  构造类型:  自定义类型 数组类型  结构体类型 struct   枚举类型 enum  联合类型 union 指针类型  int *pi; char *pc; float *pf; void *pv; void无具体类型的指针 空类型:  void 表示空类型(无类型) 通常应用于函数的返回类型、函数的参数、指针类型。 整形在内存中的存储 我们之前讲过一个变量的创建是要在内存中开辟空间的。空间的大小是根据不同的类型而决定的。 那接下来我们谈谈数据在所开辟内存中到底是如何存储的? 比如: int a 20; int b -10; 我们知道为 a 分配四个字节的空间。 那如何存储? 下来了解下面的概念: 原码、反码、补码 计算机能够处理得是二进制的数据 整型和浮点型数据在内存中也都是以二进制的形式进行储存的 计算机中的整数有三种2进制表示方法即原码、反码和补码。 三种表示方法均有符号位和数值位两部分 符号位都是用0表示“正”用1表示“负”而数值位 正数的原、反、补码都相同。 负整数的三种表示方法各不相同。 原码 直接将数值按照正负数的形式翻译成二进制就可以得到原码。 反码 将原码的符号位不变其他位依次按位取反就可以得到反码。 补码 反码1就得到补码。 对于整形来说:数据存放内存中其实存放的是补码。 为什么呢? 在计算机系统中数值一律用补码来表示和存储。原因在于使用补码可以将符号位和数值域统一处理; 同时加法和减法也可以统一处理(CPU只有加法器)此外补码与原码相互转换其运算过程 是相同的不需要额外的硬件电路。 大小端介绍 什么大端小端: 大端(存储)模式是指数据的低位保存在内存的高地址中而数据的高位保存在内存的低地址中; 小端(存储)模式是指数据的低位保存在内存的低地址中而数据的高位,保存在内存的高地 址中。 为什么有大端和小端:  为什么会有大小端模式之分呢?这是因为在计算机系统中我们是以字节为单位的每个地址单元都对应着一个字节一个字节为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 则 为大端模式。很多的ARMDSP都为小端模式。有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。 百度2015年系统工程师笔试题:  请简述大端字节序和小端字节序的概念设计一个小程序来判断当前机器的字节序。(10分)  //代码1 #include stdio.h 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; } //代码2 int check_sys() {union{int i;char c; }un;un.i 1;return un.c; } 练习 1. //输出什么? #include stdio.h int main() {char a -1;signed char b-1;unsigned char c-1;printf(a%d,b%d,c%d,a,b,c);return 0; } %d 是10进制的形式打印有符号的整数  如图 a 和 b 最后的补码是 111111111111111111111111111111111111  c的补码是 00000000000000000000000011111111 a-1,b-1,c255  2. #include stdio.h int main() {char a -128;printf(%u\n,a);return 0; } 4294967168 对于无符号数补码等于原码  %u是10进制的形式打印无符号的整数   3. #include stdio.h int main() {char a 128;printf(%u\n,a);return 0; } 4294967168 signed char -128~127 unsigned char 0~255  4. int i -20; unsigned int j 10; printf(%d\n, ij); //按照补码的形式进行运算最后格式化成为有符号整数 -10 5. unsigned int i; for(i 9; i 0; i--) {printf(%u\n,i); } 死循环 因为i0恒成立 6. int main() {char a[1000];int i;for(i0; i1000; i){ a[i] -1-i; }printf(%d,strlen(a)); return 0; } 7. #include stdio.h unsigned char i 0; int main() {for(i 0;i255;i){printf(hello world\n);} return 0; } 浮点型在内存中的储存 常见的浮点数: 3.14159 1E10 浮点数家族包括: float double long double 类型。 浮点数表示的范围:float.h 中定义 一个例子 浮点数存储的例子: int main() { int n 9; float *pFloat (float *)n; printf(n的值为:%d\n,n); //9 printf(*pFloat的值为:%f\n,*pFloat); //*pFloat 9.0; printf(num的值为:%d\n,n); // printf(*pFloat的值为:%f\n,*pFloat); //9.0 return 0; } 浮点数存储规则 num 和 *pFloat 在内存中明明是同一个数为什么浮点数和整数的解读结果会差别这么大? 要理解这个结果一定要搞懂浮点数在计算机内部的表示方法。 详细解读: 根据国际标准IEEE(电气和电子工程协会) 754任意一个二进制浮点数V可以表示成下面的形式: (-1)^S * M * 2^E (-1)^S表示符号位当S0V为正数;当S1V为负数。  M表示有效数字大于等于1小于2。 2^E表示指数位。 浮点数在计算机内部的表示方法通常使用IEEE 754标准。根据这个标准浮点数由三个部分组成符号位S、指数位E和尾数位M。 首先符号位用于表示浮点数的正负0代表正数1代表负数。 接下来指数位用于表示浮点数的指数部分。指数部分通常采用偏移表示法即使用一个偏移值来表示实际指数的偏移量。例如8位的指数位可以表示-128到127的范围其中0被用作偏移值。 最后尾数位用于表示浮点数的小数部分。尾数部分通常是一个二进制小数也称为尾数的分数部分。 根据这种表示方法浮点数可以通过以下公式计算得出 (-1)^S * (1.M) * 2^(E-B) 其中S为符号位的值0或1M为尾数位的值E为指数位的值B为偏移值。 该标准定义了两种常见的浮点数表示格式单精度32位和双精度64位。 在单精度表示中32位被划分为三个部分符号位1位、指数位8位和尾数位23位。符号位用于表示浮点数的正负指数位用于表示浮点数的指数部分尾数位用于表示浮点数的小数部分。 在双精度表示中64位被划分为三个部分符号位1位、指数位11位和尾数位52位。符号位、指数位和尾数位的含义与单精度表示相同但双精度提供了更大的精度范围和更高的精度。 浮点数的表示方法允许使用科学计数法来表示非常大或非常小的数字。指数部分确定了浮点数的数量级尾数部分确定了浮点数的精度。 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。 然后指数E从内存中取出还可以再分成三种情况:  E不全为0或不全为1 这时浮点数就采用下面的规则表示即指数E的计算值减去127(或1023)得到真实值再将 有效数字M前加上第一位的1。 比如: 0.5(1/2)的二进制形式为0.1由于规定正数部分必须为1即将小数点右移1位则为 1.0*2^(-1)其阶码为-1127126表示为 01111110而尾数1.0去掉整数部分为0补齐0到23位00000000000000000000000 则其二进制表示形式为: 001111110 00000000000000000000000 E全为0  这时浮点数的指数E等于1-127(或者1-1023)即为真实值 有效数字M不再加上第一位的1而是还原为0.xxxxxx的小数。这样做是为了表示±0以及接近于0的很小的数字。  E全为1  这时如果有效数字M全为0表示±无穷大(正负取决于符号位s); 解释前面的题目: 下面让我们回到一开始的问题:为什么0x00000009还原成浮点数就成了 0.000000 首先将 0x00000009 拆分得到第一位符号位s0后面8位的指数E00000000 最后23位的有效数字M000 0000 0000 0000 0000 1001。 9 - 0000 0000 0000 0000 0000 0000 0000 1001 由于指数E全为0。因此浮点数V就写成: V(-1)^0 × 0.00000000000000000001001×2^(-126)1.001×2^(-146) 显然V是一个很小的接近于0的正数所以用十进制小数表示就是0.000000。 再看例题的第二部分。 请问浮点数9.0如何用二进制表示?还原成十进制又是多少? 首先浮点数9.0等于二进制 是1001.0即1.001×2^3。 9.0 - 1001.0 -(-1)^01.0012^3 - s0, M1.001,E3127130 那么第一位的符号位s0有效数字M等于001后面再加20个0凑满23位指数E等于3127130 即10000010。 所以写成二进制形式应该是sEM即0 10000010 001 0000 0000 0000 0000 0000 这个32位的二进制数还原成十进制正是 1091567616。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924479.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汕头东莞网站建设网站的建设任务

目标:认识代码规范 代码规范:一套写代码的约定规则。例如:“赋值符号的左右是否需要空格”,"一句结束是否是要加;”等 为什么要使用代码规范? 在团队开发时,提高代码的可读性。 在创建项目时,我们选择的就是一套完整的代码…

Codeforces 1385G Columns Swaps 题解 [ 蓝 ] [ 扩展域并查集 ] [ 二分图最大权匹配 ] [ 基环树建模 ]

Columns Swaps:经典的图论问题,典中典了。 首先判掉无解,如果有一个数没有出现两次,则一定无解。在此基础上我们也可以得出一个转化:只需要保证序列 \(a_1\) 是一个排列,那么 \(a_2\) 自然也是一个排列了。 Sol.…

做网站是不是要学编程三亚市城乡建设局网站

文章目录 前言Compose应用程序模型Compose规范顶层属性servicenetworkvolumesconfigssecrets 环境变量.env文件environment属性主机shell中的环境变量 Profiles(剖面)启动剖面自动启动剖面和依赖项解析 多compose.yml文件共享与扩展构建规范构建属性 部署…

兰溪自适应网站建设特点传奇手游官网下载

(3)在 pipeline.py 文件中对数据进行存储,此程序先写 入 txt 文件中,是为了判断该程序是否能正确爬取出数据。 此处使用了 json 库,使用 ensure_ascii False,能够确 保非 ASCII 字符(如中文&am…

html5电影网站建设php网站开发电子书

背景: 接上一篇文章,ProcessWindowFunction 结合自定义触发器会有状态过大的问题,本文就使用AggregateFunction结合自定义触发器来实现,这样就不会导致状态过大的问题了 AggregateFunction结合自定义触发器实现 flink对于每个窗…

网站开发二级域名深圳企业专业网站设计

spring-boot 一款无侵入型,轻量级的接口文档生成工具apiggs 名字叫:apiggs 使用只需两步,先把插件代码引入pom文件,然后编译打包即可 之后项目的target目录下,就会多出一个apiggs的文件夹,里面便是项目cont…

vps网站设置wordpress代码高亮插件

一.属性计算、属性监听、属性过滤 1.认识MVVM V (用户视图界面)通过VM (应用程序) 向Model(数据模型) 取值与赋值的过程! 数据双向绑定 视图改变更新数据,数据改变更新视图 2.属性计算 //在vue实例中通过computed去计算new …

US$78 HU66 Clamp SN-CP-JJ-12 Work on Volkswagen Serials for SEC-E9 Key Cutting Machine

HU66 Clamp SN-CP-JJ-12 Work on Volkswagen Serials for SEC-E9 Key Cutting Machine HU66 Auxiliary fixture is suitable to copy keys for Sharon, Touareg, Phaeton, Beetle and other Volkswagen series, as wel…

US$78 HU64 Clamp Work on Benz SN-CP-JJ-11 for SEC-E9 Key Cutting Machine

SEC E9 HU64 Clamp for Benz SN-CP-JJ-11Benz serials for class C,E and GLK ,Sprinter,Viano, Vito and all new Benz improted cars (including Maybach,Lorinser and Carlsson,class in S and GL,out milling and …

杭州家具网站建设方案网站开发PHP程序员招聘

Java中主要有八种基本数据类型: 1、整型:byte、short、int、long 2、字符型:char 3、浮点型:float、double 4、布尔型:boolean 一、整型 Java中整型数据属于有符号数,即第一个bit位为0表示正整数&…

PlantUML 完整教程:从入门到精通

什么是 PlantUML PlantUML 是一个开源工具,允许用户使用简单直观的文本描述来快速创建 UML 图表。它基于纯文本语法,能够生成多种类型的图表,包括时序图、用例图、类图、活动图、组件图、状态图等。 PlantUML 的核心…

长治长治那有做网站的小程序定制开发公司平台

目录 Shell: 3.Shell命令: command [-options] arg1 arg2 .. 1.Shell基本命令: 2.文件查看命令: 3.文件查找命令: 通配符: 7.压缩解压命令: 8.让虚拟机上网: 9.apt-get工具集: Shell: 1.保护Linux内核(用户和Linux内核不直接操作,通过操作Shell,Shell和内核交互) 2.命令…

建设法规的网站网站开发者技术网站

数据结构分为逻辑结构和物理结构。 逻辑结构:指数据元素之间逻辑关系的数据结构,这里的逻辑关系是指数据元素之间的前后间关系,与数据在计算机中的存储位置无关。物理结构:指数据的逻辑结构在计算机存储空间中的存放形式称为数据…

你妈的

为什么结构图论这么难为什么结构图论这么难为什么结构图论这么难为什么结构图论这么难为什么结构图论这么难为什么结构图论这么难为什么结构图论这么难为什么结构图论这么难为什么结构图论这么难为什么结构图论这么难为…

网上书城网站开发意义网站和搜索引擎

解析class文件案例介绍本案例主要介绍通过java代码从class文件中解析;class文件、常量池、属性表;作为类(或者接口)信息的载体,每个class文件都完整地定义了一个类。为了使java程序可以“编写一次,处处运行”,Java虚拟…

开设赌场罪建设网站有什么专业做心理的网站

据悉,从2023年11月1日开始,TikTok Shop将根据卖家的店铺表现来应用3种不同类型的结算期,其中,标准结算期:资金交收期为8个日历日;快速结算期:资金交收期为3个日历日;延长结算期&…

高端品牌网站建设建议网站制作价格范围

题干&#xff1a; 给出N个正整数&#xff0c;检测每个数是否为质数。如果是&#xff0c;输出"Yes"&#xff0c;否则输出"No"。 Input 第1行&#xff1a;一个数N&#xff0c;表示正整数的数量。(1 < N < 1000) 第2 - N 1行&#xff1a;每行1个数…

有网站加金币的做弊器吗长沙创求网络科技有限公司

《微机与单片机概述课件.ppt》由会员分享&#xff0c;提供在线免费全文阅读可下载&#xff0c;此文档格式为ppt&#xff0c;更多相关《微机与单片机概述课件.ppt》文档请在天天文库搜索。1、1.微机与单片机概述1.1 微型计算机的特点和发展1.2 微机的分类与单片机1.3 微处理器、…

001

001$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");001.在hello world中编译器工具链分别做了什么为便于理解底层原理,本文中所有操作均在cmd中使用gcc实现…

US$188 Tubular Key Clamps for SEC-E9 Key Cutting Machine Tubular Key Cutting

Tubular Key Clamps Work on House keys Motorcycle keys for SEC-E9 Key Cutting MachineIntroduction of Jaw:This Car Key Clamp is mainly composed by the front-block, post-block, clamp base, handle, elastic…