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

建设网站域名的选择企业网站设计

建设网站域名的选择,企业网站设计,做网站的IDE,php动态页面目录 1. 数据类型介绍 1.1 类型的基本归类 2. 整形在内存中的存储 2.1 原码、反码、补码 2.2 大小端介绍 2.3 一道小题 本章重点 1. 数据类型详细介绍 2. 整形在内存中的存储:原码、反码、补码 3. 大小端字节序介绍及判断 4. 浮点型在内存中的存储解析 正文…

目录

1. 数据类型介绍

1.1 类型的基本归类

2. 整形在内存中的存储

2.1 原码、反码、补码 

2.2 大小端介绍

 2.3 一道小题


本章重点

1. 数据类型详细介绍

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

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

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

 正文开始

1. 数据类型介绍

我们已经学习过数据的基本内置类型:

char        //字符数据类型

short       //短整型

int         //整形

long        //长整型

long long   //更长的整形

float       //单精度浮点数

double      //双精度浮点数

 C语言有没有字符串类型? 

答案是没有。字符串是一种非常重要的数据类型,但是C语言不存在显式的字符串类型,C语言中的字符串都以字符串常量的形式出现或存储在字符数组中。同时,C 语言提供了一系列库函数来对操作字符串,这些库函数都包含在头文件 string.h 中。

那究竟什么是字符串变量呢

C 语言虽然没有字符串类型,但是 C语言提是存在字符串这个概念的,也就是字符串常量:以 NUL 字节结尾的 0 个或多个字符组成的序列。字符串常量是不可被修改的,一般用一对双引号(" ")括起的一串字符来表示字符串常量,如:

"hello world","sun wu kong",""等。

字符串常量可以为空,如""就是一个空的字符串常量,但是即使为空,还是存在一个终止符 NUL 的。(在 C 语言中,常用转义字符 \0 来表示 NUL)


1.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] 

 这么一看和单词书一样,我知道大家急,但是仙布急!

 所有的整形都是有规律的,基本都分为signed和unsigned两种。

两种类型的区别,在下文将会讲解。

浮点数家族:

float

double

构造类型:

> 数组类型

> 结构体类型 struct

> 枚举类型  enum

> 联合类型  union 

指针类型:

int *pi;

char *pc;

float* pf;

void* pv;

空类型:

void 表示空类型(无类型)

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


2. 整形在内存中的存储

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

接下来我们就来谈谈数据在所开辟内存中到底是如何存储的 

比如: 

int a = 20;

int b = -10;

我们知道为 a 分配四个字节的空间。

如何存储? 下来了解下面的概念: 

2.1 原码、反码、补码 

计算机中的整数有三种2进制表示方法,即原码、反码和补码。 

三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位正数的原、反、补码都相同。

负整数的三种表示方法各不相同。

原码

直接将数值按照正负数的形式翻译成二进制就可以得到原码。

反码

将原码的符号位不变,其他位依次按位取反就可以得到反码。 

补码

反码+1就得到补码。

 对于整形来说:数据存放内存中其实存放的是补码。

为什么呢?

在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理; 同时,加法和减法也可以统一处理(CPU只有加法器)此外,补码与原码相互转换,其运算过程 是相同的,不需要额外的硬件电路。

我们看看在内存中的存储:  

 

 

我们可以看到对于a和b分别存储的是补码。但是我们发现顺序有点不对劲。

这是又为什么?

2.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处理器还可以由硬件来选择是大端模式 还是小端模式。 

百度2015年系统工程师笔试题: 

请简述大端字节序和小端字节序的概念,设计一个小程序来判断当前机器的字节序。

 大端字节序和小端字节序的概念上面已经给出,下面是判断字节序的代码。


#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;
}

如图,若取出的第一个的数据为 1,则是小端模式,是 0,则是大端模式。 


 整形在内存中的储存就到此为止,浮点数的储存方式将会在下一篇文章讲解。

文章如果有错误,还请各位大佬不吝赐教!

http://www.wooajung.com/news/29885.html

相关文章:

  • 龙岩市住房与城乡建设部网站seo搜索引擎优化排名哪家更专业
  • 网站怎么才能被搜到营销网站建设的因素
  • 网站开发工程师应聘书范文700字微商营销技巧
  • wordpress 主机销售短视频搜索seo
  • 电子商务营销手段有哪些seoul怎么读
  • 网站前端语言百度推广助手手机版
  • 可以在哪些网站 APP做推广seo软件推荐
  • 为什么会有免费制作网站谷歌seo零基础教程
  • wordpress论坛模板下载seow
  • 建模网站网络服务提供商
  • 怎样把网站做的漂亮百度 营销推广多少钱
  • wordpress添加feed格式seo推广和百度推广的区别
  • 新网站前期seo怎么做百度一下你知道
  • 建筑资质查询官方网站网站推广名词解释
  • app网站建设168推广网
  • 专门做设计文案的网站公司网页怎么做
  • 泉州网站建设免费建站的网站哪个好
  • 网站建设 创新网站怎样优化seo
  • 西安最好的网站建设公司seo关键词优化外包公司
  • 网销都是在那些网站做推广站长素材网站
  • 深圳网站建设ppchsjseo最新技巧
  • 怎么在阿里巴巴网站做公司名称近期网络舆情事件热点分析
  • 保洁公司在哪个网站做推广比较好广州疫情已经达峰
  • c#做asp.net网站指数基金是什么意思
  • 南宁市做公司网站电池优化大师下载
  • 源码制作网站教程行业门户网站推广
  • 深圳建设工程交易服务网网址北京首页关键词优化
  • 外贸网站建设是做什么的高端网站优化公司
  • 网站建设的发票网络营销的优势包括
  • 做淘宝客网站需要多大的数据库关键词排名查询工具免费