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

郑州高端网站开发优秀网站网页设计

郑州高端网站开发,优秀网站网页设计,卡姿兰网站建设策划书,网站建设要多少费用目录数据类型详细介绍整形在内存中的存储:原码,反码,补码大小端字节序介绍及判断浮点型在内存中的存储解析数据类型详细介绍整形:1.为什么char类型也会归类到整形家族当中去呢?字符存储和表示的时候本质上使用的是ASCI…

目录

  1. 数据类型详细介绍

  1. 整形在内存中的存储:原码,反码,补码

  1. 大小端字节序介绍及判断

  1. 浮点型在内存中的存储解析

  1. 数据类型详细介绍

整形:

1.为什么char类型也会归类到整形家族当中去呢?
字符存储和表示的时候本质上使用的是ASCII值,ASCII值是整数,字符也归类到整形。
2.为什么会存在无符号数和有符号数呢?
因为现实生活中描述一些变量时,存在一些数有正负,而一些数只有正数没有负数,例如年龄 温度
3.我们在使用int类型时,int就相当于signed int,只不过signed可以省略掉
而无符号整数只能写为 unsigned int
4.注意 char是否等价于singed char 取决于编译器,而大部分编译器char 都等价于singed char

构造类型:(自定义类型)

数组类型

结构体类型struct

枚举类型 enum

联合类型union

指针类型

int* pa;

char* pb;

float* pc;

void* pd;

空类型:

void表示空类型(无类型)

通常应用于函数的返回类型,函数的参数,指针的类型

void test()//函数不需要返回值
{}
void test(void)//函数不需要参数
{}
void* p;//无具体类型的指针

2.整形在内存中的存储:原码,反码,补码

变量的创建是要在内存中开辟空间的,空间大小是根据不同的类型来决定的。

1.计算机中整数有3种二进制表示方法,即原码、反码、补码

2.三种表示方法均有符号位数值位两部分,0表示正,1表示负

3.正数的原码、反码、补码都相同

负数原码:直接翻译成二进制就可以得到原码

负数反码:除符号位每一位按位取反得到反码

负数补码:反码基础上加1得到补码

4.整形在内存中是以补码的形式存储

int main()
{int a = 20;//00000000000000000000000000010100  原码 反码 补码int b = -10;//10000000000000000000000000001010  原码//11111111111111111111111111110101  反码//11111111111111111111111111110110  补码return 0;
}
为什么在计算机系统中数值一律用补码的形式进行存储呢?
原因是:使用补码,可以将符号位和数值域统一处理;同时加减法也可以统一处理,CPU只有加法器
此外,原码和补码进行转换,其运算过程是相同的,不需要额外的硬件电路。
//1-1
//1+(-1)
//00000000000000000000000000000001
//10000000000000000000000000000001
//11111111111111111111111111111110
//100000000000000000000000000000000 1和-1的补码相加
//00000000000000000000000000000000 舍弃最高位

3.大小端字节序介绍及判断

为什么会出现这种倒放的现象呢?

因为任何数据在存储的过程中,如果它的大小大于1个字节,那么它在存储过程中就会存在一个存储顺序的问题。

大端字节序存储:把一个数据的低位字节的数据,存放在高地址处,把高位字节的数据存放在低地址处。

例如存储123:从3的开始依次向高位1存储

小端字节序存储:把一个数据的低位字节的数据,存放在低地址处,把高位字节的数据存放在高地址处。

上图为地址从低到高

知道了大小端字节序,那么我们就可以解决开头的地址倒放现象

所以开始的倒放现象是小端字节序存储的。


设计一个程序,判断数据是大端存储还是小端存储。

思路:假设我们要存储的是整形1,那么在内存中可能就会出现以下两种情况。

int main()
{int a = 1;//0x00000001char* p = (char*)&a;//访问1个字节if (*p == 1){printf("此数据为小端字节序存储\n");}else if (*p == 0){printf("此数据为大端字节序存储\n");}return 0;
}

封装为函数:

int check_sys()
{int a = 1;//0x00000001char* p = (char*)&a;//访问1个字节if (*p == 1)return 1;//小端elsereturn 0;//大端
}
int main()
{if (check_sys() == 1){printf("小端\n");}else{printf("大端\n");}return 0;
}

有符号char和无符号char的范围

所以推广我们可以得到:

short -2^15~2^15-1

unsigned short 0~ 2^16-1

%d打印有符号数
%u打印无符号数

以上程序为什么会出现这样的结果?

就是因为格式符使用错误导致的,所以在打印有符号和无符号数时,一定要注意格式控制符的使用

感谢阅读,继续剖析请看下回分解。

http://www.hkea.cn/news/939080/

相关文章:

  • 做网站如何适应分辨率网站分析培训班
  • 现在币圈有那些私募网站做的好百度推广账号登陆入口
  • 旅游网站图片营销公司排名
  • 做服务器的网站都有哪些搜狗关键词排名此会zjkwlgs
  • php动态网站开发 唐四薪 答案b站引流推广网站
  • 长沙3天2晚自由行攻略论述搜索引擎优化的具体措施
  • 外汇局网站做结汇申报被逆冬seo课程欺骗了
  • 网站运营配置免费网站在线观看人数在哪直播
  • 什么网站做一手房好系统优化的例子
  • wordpress 插入wordseo排名点击工具
  • 网站推广易网宣seo的主要分析工具
  • 安徽网站定制最大免费广告发布平台
  • 怎么查网站有没有做404公司宣传网页怎么做
  • 靠谱营销网站开发选哪家seo的优点和缺点
  • 企业网站建设论文文献综述百度推广的广告真实可信吗
  • 企业网站优化方式广州最新消息今天
  • 旅游网站开发的意义seo优化方案案例
  • 山东做网站的公司seo数据分析哪些方面
  • 做网站用哪几个端口 比较好百度贴吧官网网页
  • 弹幕网站是怎么做的百度在线翻译
  • 独立网站域名代发关键词包收录
  • 如何建立门户网站百度可以发布广告吗
  • 网站开发毕设文献郑州网站优化顾问
  • 青海建设银行的官方网站自己制作网页的网站
  • 网站建设的图片叠加步骤过程2021年搜索引擎排名
  • 网站链接到邮箱怎么做搜索引擎推广试题
  • 十堰城市建设网站制作自己的网站
  • 传媒网站建设公司深圳百度seo优化
  • 公司需要网站 该怎么做公司推广咨询
  • 高中男女做那个视频网站seo做的好的网站