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

公共数据开放网站建设类似小红书网站开发费用

公共数据开放网站建设,类似小红书网站开发费用,鸿星尔克的网络营销策略,网页界面设计视觉空间的三维可视化引言 对位段进行介绍#xff0c;什么是位段#xff0c;位段如何节省空间#xff0c;位段的内存分布#xff0c;位段存在的跨平台问题#xff0c;及位段的应用。 ✨ 猪巴戒#xff1a;个人主页✨ 所属专栏#xff1a;《C语言进阶》 #x1f388;跟着猪巴戒#xff0c;…引言 对位段进行介绍什么是位段位段如何节省空间位段的内存分布位段存在的跨平台问题及位段的应用。 ✨ 猪巴戒个人主页✨                所属专栏《C语言进阶》         跟着猪巴戒一起学习C语言 目录 引言 什么是位段 位段的作用 位段是如何节省空间位段的内存分配 位段的内存分配 位段的跨平台问题 位段的应用 什么是位段 位段的声明和结构是类似的有两个不同 位段的成员必须是整形家族的类型位段的成员名后面有一个冒号和一个数字。 冒号后面的数字表示的是这个变量将使用多大的内存单位是比特位。 int _n : 2 表示的是_n这个整形变量本来是4个字节也就是32个比特位 但是现在要将它的内存缩减到2个比特位。 struct A {int _n : 2;int _b : 5;int _c : 10;int _d : 30; }; 整形家族的介绍  整形类型不仅包括基本整形还有短整形长整形双长整形字符型和布尔型。 类型字节数取值范围int整形4 -2147483648~2147483647 short(短整型)2-32768~32767long长整型4/8-2^31~(2^31-1)long long(双长型)8-2^63~(2^63-1)char1-2^7~(2^7-1)bool11,0 位段的作用 位段的作用就是节省空间。当我们有一些成员的取值范围有限的时候所需要的内存空间也不需要太多的空间。 比如说布尔类型 只需要表示真或者假1表示真0表示假。实际上布尔类型的变量只占有1个比特位1个字节代表着8个比特位如果使用位段就可以帮助我们节省大量的空间。  由此位段所执行的大小不能大于这个变量类型本身的大小不然就会报错。 位段是如何节省空间位段的内存分配 下面是刚才给大家做示范的例子我们现在看这个位段所占用的空间 #include stdio.h struct A {int _n : 2;int _b : 5;int _c : 10;int _d : 30; }; int main() {printf(%d\n, sizeof(struct A));return 0; } _n,_b,_c,_d这四个变量的大小加在一起一共是47个比特位那就是需要6个字节的大小。 但是我们发现struct A的大小不仅仅是6个字节而是8个字节。 这就说明位段中内存分布不仅仅是简单组合顺序地一个紧挨着一个地存放。 位段的内存分配 位段的成员可以是整形家族的类型位段的空间上是按照需要以4个字节int或者1个字节char的方式来开辟的位段涉及很多不确定因素位段是不跨平台的注意可移植的程序应该避免使用位段 2.位段的空间上是按照需要以4个字节int或者1个字节char的方式来开辟的  1.例子 下面位段的大小是8个字节 struct A {int _n : 2;int _b : 5;int _c : 10;int _d : 30; }; 解析struct A的内存分布  还是拿这个例子给大家举例 因为是位段都是int类型所以这里位段的空间按照4个字节的方式开辟。 首先开辟4个字节来存放内存。 _n是2个比特位_b是5个比特位_c是10个比特位一共是17个比特位 放在4个字节32个比特位/一个整形大小当中剩下15个比特位。 是不足够放下_d30个比特位所以另外开辟一个整型大小4个字节/32个比特位将_d放进去。 _n,_b,_c放在前面的一个整形_d放在后面的一个整形。 一共是两个整形就是8个字节。 2.例子 下面位段的大小是3个字节 #include stdio.h struct S {char a : 3;char b : 4;char c : 5;char d : 4; }; int main() {printf(%d\n, sizeof(struct S));struct S s { 0 };s.a 10;s.b 12;s.c 3;s.d 4;return 0; } 解析struct S位段的内存分布 这个位段都是char 类型所以这里位段的空间按照1个字节的方式开辟。 1.首先开辟1个字节8个比特位来存放数据 a是3个比特位b是4个比特位那么开辟的第一个字节就剩下1个比特位是不足够存放5个比特位的c变量。 2.开辟下一个字节8个比特位存放数据 c是5个比特位这个字节还剩下3个比特位不足够存放4个比特位的d变量。 3.开辟下一个空间8个比特位存放数据 d是4个比特位将d存放第三个字节中。 解析struct S的数据在内存中的具体分布 //在位段中的成员被赋值后观察内存分布 struct S s { 0 }; s.a 10; s.b 12; s.c 3; s.d 4; struct S在内存中的分布其实是有所差异的当位段中的成员被赋值后我们就可以看到位段中的成员是如何分布的。 首先开辟一个字节后 a10的二进制数字是01010位段3个比特位所以a的值放入内存中会被裁断变成010. b的值是12位段4个比特位所以b存到内存中的值是1100.数据是以二进制的形式存到内存 a,b的存放方式如下图a和b在第一个字节中的排列方式是从右到左的也就是从高地址向低地址在一个字节中优先排放高地址。 第二个字节开辟 c3的二进制数字是11位段5个字节不足5个字节用0来补充高位也就是00011. c的存放方式也是在这个字节中优先排放高地址处。 第三个字节开辟 d的值是4二进制数字是100位段4个字节高位用o来补充也就是0100 d的存放方式也是在这个字节中优先排放高地址处。 所以位段struct S在内存中存放的数据是01100010 00000011 00000100 换算成十六进制数字就是 62 03 04 验证 通过内存调试观察内存窗口就可以看到 位段的跨平台问题 int 位段被当成有符号数还是⽆符号数是不确定的。位段中最⼤位的数⽬不能确定。16位机器最⼤1632位机器最⼤32写成27在16位机器会出问题。位段中的成员在内存中从左向右分配还是从右向左分配标准尚未定义。当⼀个结构包含两个位段第⼆个位段成员⽐较⼤⽆法容纳于第⼀个位段剩余的位时是舍弃剩余的位还是利⽤这是不确定的。 总结  跟结构相⽐位段可以达到同样的效果并且可以很好的节省空间但是有跨平台的问题存在。 位段的应用 下图是⽹络协议中IP数据包的格式我们可以看到其中很多的属性只需要⼏个bit位就能描述这⾥使⽤位段能够实现想要的效果也节省了空间这样⽹络传输的数据报⼤⼩也会较⼩⼀些对⽹络的畅通是有帮助的。 大量的数组经过位段的处理可以将数据的内存缩小是数据包的大小变小数据包变小网络的传输就会变得快速。
http://wiki.neutronadmin.com/news/237434/

相关文章:

  • 怎么查询网站是谁做的自己建设一个网站
  • 怎么做浏览网站的小程序购物网站后台订单处理流程
  • 深圳坪山站网页小游戏推荐知乎
  • 网站推广怎么推广建设网站应该加什么服务
  • 银川网站推广方式内江网站制作
  • php+mysql 网站建设杭州seo工作室
  • 设计网站案例网站被窝家装公司
  • wordpress 会议网站wordpress 留言板制作
  • 企业网站的建立视频免费外链网站
  • gta5购买房产网站正在建设求一外国h网站
  • 进腾讯做游戏视频网站深圳刚刚突然宣布
  • 简单网站建设哪家便宜给点没封的网址好人一生平安
  • 网站运营内容包含哪些怎么下载浏览器里的视频
  • 泉州北京网站建设手机网站 普通网站
  • 烟台做网站电话交易平台网站建设
  • 北京各大网站推广服务公司wordpress 更改插件目录
  • 网站制作关键杭州企业网站制作哪个好
  • 商城网站建设哪家便宜tag in wordpress
  • 如何建立p2p网站做一个官网需要多少钱
  • 珠海品牌型网站建设wordpress 地区联动
  • 网站指向邮箱超链接怎么做wordpress 移动端 主题
  • 想学做宝宝食谱上什么网站网站开发新手什么软件好
  • 网站改版公司哪家好建设工程安全管理网站
  • 一个网站上面有名优网页设计师证书报名官网
  • 网站建设学校培训学校宝塔安装wordpress无法访问
  • 网站底部浮动wordpress 修改title
  • 网站建设名词解析小程序 wordpress打包
  • 网站建站第十四课dede响应式网站模板下载
  • 桂林医院网站建设公司包装推广
  • phpcms 移动网站模板房地产公司 网站建设