进制与类型

Posted shuqing-cxw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进制与类型相关的知识,希望对你有一定的参考价值。

一、进制

计算机通过关闭和打开状态组合来表示信息,用二进制非常方便,即用0和1表示,即比特序列,现代计算机普遍1byte使用8bit表示。

1.1 计算机中的八进制转二进制

  1. 8=2^3,即每个八进制位对应3个二进制位,按位拼接;
  2. 一个3位的八进制数可能要用9位二进制数来表示;
  3. 在C/C++中表示八进制数在其前面添加0标识
1 Example:0377377(8)
2   7=111
3   3=011
4 故0377  = 1111 1111
5 说明八进制若标识比377还大的数需要2字节来表示;

1.2 计算机中的十六进制转二进制

  1. 16=2^4,即每个十六进制位对应4个二进制位,按位拼接;
  2. A=10,B=11,C=12,D=13,E=14,F=15
  3. 在C/C++中表示十六进制数在其前面添加0x或0X标识
1 Example: 0xA3F→A3F(16) 
2     A=1010
3     3=0011
4     F=1111
5 故0xA3F = 0000 1010 0011 1111
6 2个十六进制位符号表示一个8位比特序列,故以十六进制很方便表示字节值

二、类型

数据类型是程序的基础,决定了数据的意义,也决定了我们能在数据上所执行的操作。

http://www.cnblogs.com/Shuqing-cxw/p/9189411.html 2文件的本质可以知道,数据类型可以理解为固定大小内存的别名;

不同的数据类型,用于应对各种不同的需要;最简单的例如加减法使用整数型,而除法可能需要浮点类型更符合实际;

在存储空间中,使用数据类型来向整个存储空间申请一个相应大小的内存块以供使用;

2.1 基本类型

  1. 内置类型包括了算术类型和空类型;
  2. 算术类型分为两类:整型和浮点型;
  3. 整型包括字符类型和布尔类型(C++);

2.2 自定义类型

  1. C语言中的结构体类型;
  2. C++语言中的类类型;
  3. C/C++的typedef关键字所定义的类型、枚举类型、联合/共用类型;

三、变量

通过使用数据类型来创建一些变量来形象具体的描述并操作这些固定大小的内存;

故可以看出,变量的本质就是一段实际连续存储空间的别名;即,所占用的内存大小同数据类型所占的空间大小,且变量需要依赖归属某个数据类型;

程序中通过变量来申请并命名某一存储空间;即术语中的声明

通过操作变量达到使用该存储空间的目的;

四、补充:类型与变量的关系

 1 //类型与变量的关系
 2 /* sizeof关键字返回字节数表示所占的内存大小,sizeof(variable)
 3  * printf()函数为C语言打印输出函数,printf("转换说明",变量);
 4 */
 5 #include <stdio.h>
 6 int main()
 7 {
 8 
 9     char c;
10     int i;
11 
12     printf("sizeof(char) = %d, sizeof(c) = %d
", sizeof(char), sizeof(c));
13     printf("sizeof(int ) = %d, sizeof(i) = %d
", sizeof(int), sizeof(i));
14 
15     return 0;
16 }

结论:

1.变量必然隶属于某个数据类型;

2.变量所占用的内存大小取决于所归属的数据类型;

以上是关于进制与类型的主要内容,如果未能解决你的问题,请参考以下文章

在代码片段中包含类型转换

当我切换到包含片段的活动时应用程序崩溃(二进制 XML 文件第 10 行:二进制 XML 文件第 10 行:膨胀类片段时出错)

c_cpp C片段将十进制转换为二进制

对这个带有 & 不带 = 的代码片段返回类型感到非常困惑

Python的基本类型

Silverlight 中的十进制转换器无法正确处理丢失焦点