进制与类型

一、进制

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

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

  1. 8=2^3,即每个八进制位对应3个二进制位,按位拼接;
  2. 一个3位的八进制数可能要用9位二进制数来表示;
  3. 在C/C++中表示八进制数在其前面添加0标识
1 Example:0377→377(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\n", sizeof(char), sizeof(c));
13     printf("sizeof(int ) = %d, sizeof(i) = %d\n", sizeof(int), sizeof(i));
14
15     return 0;
16 }

结论:

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

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

原文地址:https://www.cnblogs.com/Shuqing-cxw/p/9190227.html

时间: 2024-10-28 18:55:22

进制与类型的相关文章

2 C语言 常量,进制,类型限定 输入输出 运算符 类型转换

常量:#define const 字符串常量 1 8 10 16 进制转换 sizeof关键字 变量 int folat char 类型限定 const volatile register 输入输出 printf scanf 运算符 = + - *  / % += -= *= /= %= ++ -- , 运算符优先级 代码块{} 类型转换 1         C语言中的数据类型 1.1      常量 常量就是在程序中不可变化的量,常量是不可被赋值的. 1.1.1         #define

codevs 进制转换类型x

进制转换 1.计算机中采用二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供有利途径.节省设备等优点,为了便于描述,又长用八.十六进制作为二进制的缩写,一般技术都采用进位计数,其特点: (1)逢N进一,N是每种进位计数制表示一位数所需要符号数目为基数. 二进制:逢二进一,借一当二 八进制:逢八进一,借一当八 十六进制:........ (2)数制转换 不同进位计数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如相等,则两数的整数和分数部分一定分别相等的原则进行的,若转换前两

bytes数据类型,三元运算,进制互换

三元运算 如果这个条件成立就存这个值,如果那个条件成立就存那个值. 进制 bytes类型,字节数据类型也就是二进制类型,这个是python3专有数据类型,在python2里跟字符串是一个类型,也就是python2是不区分这个数据类型的. 比如说音频,视频文件都是二进制类型,也就是bytes类型.(python3通过socket在网络上传输数据时必须要用二进制格式,python2没有强制必须是二进制,字符串也可以) Python3中最大的新特性就是对文本和二进制数据做了更清晰的区分.文本通常是Un

C语言:其他进制转换为十进制(方法二)

#include<stdio.h> #include<math.h> #include<string.h> #include<ctype.h> //其他任意进制转换为十进制 int main() { int trans(char a[],int ); char arr[100]; int t; printf("请输入进制的类型:"); scanf("%d",&t); printf("请输入该进制的数:

C语言:其他进制数转换为十进制(方法一)

#include<stdio.h> #include<math.h> #include<string.h> //其他任意进制转换为十进制 int main() { int trans(char a[],int ); char strupr(char ); char arr[100]; int t; printf("请输入进制的类型:"); scanf("%d",&t); printf("请输入该进制的数:&quo

C# 进制转化

//int转16进制 (long类型同样) int a=90; string str= convert.tostring(a,16); //5a //int转2进制 int a=90; string str= convert.tostring(a,2); //1011010 //int转byte int a=90; string str= Convert.Tobyte(a); //0x5a //16进制转10 string hex = "5a"; string aa = Convert

03 php 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换,算术运算,比较运算

03 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换, 算术运算,比较运算,逻辑运算,短路现象, 三目运算符,字符型运算: 数据类型 整体划分 标量类型: int, float, string, bool 复合类型: array,     object 特殊类型: null,     resouce 整数类型int, integer 3种整数表示法 十进制写法:123: $n1 = 123; 八进制写法: 0123 $n2 = 0123; 十六进制写法: 0x123 $n3

【String与基本类型之间的转换】以及【进制转换】

1. 基本数据类型---->字符串类型: 方法一:使用连接一个空字符串,例如  基本数据类型+“” : 方法二:静态方法 String.valueOf(),具体有: String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串 String.valueOf(char c) : 将 char 变量 c 转换成字符串 String.valueOf(char[] data) : 将 char 数组 data 转换成字符串 String.valueOf(char[]

java中整数类型的2进制表示

java中的4种整数类型:byte,short,int,long均采用补码表示. 如下图右边所示 在java中对二进制数没有"字面"表示方法.十六进制可以用OX或者Ox指示,八进制可以用O指示. 下面的代码可以输出byte类型的数据的2进制表示形式: public class Test { public static void main(String[] args) { byte a = -128; test(a); } public static void test(byte m){