康老师

C语言数据类型的三个要素:基本类型、修饰符和指针

2023-06-24 分类:百科

1、C语言中的数据类型:

2、学习数据类型的三个要素:

1、存储数据的宽度

2、存储数据的格式

3、作用范围(作用域)

3、整数类型:char short int long

char 8BIT 1字节

short 16BIT 2字节

int 32BIT 4字节

long 32BIT 4字节

#include "stdafx.h"

void Plus(){

char A =0xFF

short B = 0xFF

int C = 0xFF

//在一个大括号里变量不能重复

}

int main(int argc, char* argv[])

{

Plus()

return 0

}

void Plus(){

00401020 push ebp

00401021 mov ebp,esp

00401023 sub esp,4Ch

00401026 push ebx

00401027 push esi

00401028 push edi

00401029 lea edi,[ebp-4Ch]

0040102C mov ecx,13h

00401031 mov eax,0CCCCCCCCh

00401036 rep stos dword ptr [edi]

7: char A =0xFF

00401038 mov byte ptr [ebp-4],0FFh//局部变量

8: short B = 0xFF

0040103C mov word ptr [ebp-8],offset Plus+20h (00401040)

9: int C = 0xFF

00401042 mov dword ptr [ebp-0Ch],0FFh

10: //在一个大括号里变量不能重复

11: }

00401049 pop edi

0040104A pop esi

0040104B pop ebx

0040104C mov esp,ebp

0040104E pop ebp

0040104F ret

有符号和无符号:在内存中存储是完全一样的,在使用的时候,要告诉计算机是当什么用。类型转换--比较大小和数学运算

#include "stdafx.h"

void Plus(){

char i =0xff

unsigned char a=0xff //无符号和无符号 存的是一样

}

int main(int argc, char* argv[])

{

Plus()

return 0

}

4、浮点类型:float double

7: float i =12.5

00401038 mov dword ptr [ebp-4],41480000h

float和double在存储方式上都是遵从IEEE的规范的

将一个float型转化为内存存储格式的步骤为:

1、先将这个实数的绝对值化为二进制格式

2、将这个二进制格式实数的小数点左移或右移n位,直到小数点移动到第一个有效数字的右边。

3、从小数点右边第一位开始数出二十三位数字放入第22到第0位。

4、如果实数是正的,则在第31位放入“0”,否则放入“1”。

5、如果n 是左移得到的,说明指数是正的,第30位放入“1”。如果n是右移得到的或n=0,则第30位放入“0”。

6、如果n是左移得到的,则将n减去1后化为二进制,并在左边加“0”补足七位,放入第29到第23位。

如果n是右移得到的或n=0,则将n化为二进制后在左边加“0”补足七位,再各位求反,再放入第29到第23位。

7: float i =0.25F

00401038 mov dword ptr [ebp-4],3E800000h

-2-1=-3 ,FF -1 FE -2FD -3

FD = 1111 1101

0011 1110 1000 0000 0000 0000 0000 0000

3E8000

5、英文字符存储

ASCII:

1、ASCII 码使用指定的 7 位或 8 位二进制数组合来表示 128 或 256 种可能的字符。

2、标准 ASCII 码使用 7 位二进制数来表示所有的大写和小写字母,数字 0 到 9、标点符号,以及在美式英语中使用的特殊控制字符。

3、扩展 ASCII 码允许将每个字符的第 8 位用于确定附加的 128 个特殊符号字符、外来语字母和图形符号。

标准ASCLL码表截取:

二进制 十进制 十六进制 字符

0100 0001 65 41 A

0100 0010 66 42 B

0100 0011 67 43 C

0100 0100 68 44 D

0100 0101 69 45 E

0100 0110 70 46 F

0100 0111 71 47 G

0100 1000 72 48 H

0100 1001 73 49 I

0100 1010 74 4A J

0100 1011 75 4B K

0100 1100 76 4C L

0100 1101 77 4D M

0100 1110 78 4E N

0100 1111 79 4F O

0101 0000 80 50 P

0101 0001 81 51 Q

0101 0010 82 52 R

0101 0011 83 53 S

0101 0100 84 54 T

0101 0101 85 55 U

0101 0110 86 56 V

0101 0111 87 57 W

0101 1000 88 58 X

0101 1001 89 59 Y

0101 1010 90 5A Z

6、中文字符存储

计算机发明之处及后面很长一段时间,只用应用于美国及西方一些发达国家,ASCII能够很好满足用户的需求。

但是当天朝也有了计算机之后,为了显示中文,必须设计一套编码规则用于将汉字转换为计算机可以接受的数字系统的数。

天朝专家把那些127号之后的奇异符号们(即EASCII)取消掉,规定:一个小于127的字符的意义与原来相同

但两个大于127的字符连在一起时,就表示一个汉字,前面的一个字节(他称之为高字节)从0xA1用到 0xF7,后面一个字节

(低字节)从0xA1到0xFE,这样我们就可以组合出大约7000多个简体汉字了。

在这些编码里,还把数学符号、罗马希腊的 字母、日文的假名们都编进去了,连在ASCII里本来就有的数字、标点、字母都

统统重新编了两个字节长的编码,这就是常说的"全角"字符,而原来在127号以下的那些就叫"半角"字符了。

点击阅读剩余内容
网友评论
显示评论内容(7) 收起评论内容
  1. 2023-11-25 18:43剑心飞语[宁夏网友]42.0.0.153
    虽然C语言的数据类型很多,但理解它们的三个要素可以帮助我们对它们进行分类和归纳,从而更好地管理和使用不同数据类型。
    顶40踩0
  2. 2023-11-03 17:19陆翔[台湾省网友]118.91.255.174
    C语言数据类型的三个要素是初学者必须要掌握的基础知识,从最基础的数据类型开始学习,逐步深入理解,是学好C语言的关键。
    顶0踩0
  3. 2023-10-12 15:55czlhls[云南省网友]103.247.176.1
    数据类型的三个要素对于编写可移植性强的代码也非常重要,了解不同编译器和不同操作系统对数据类型的实现方式可以避免出现兼容性问题。
    顶0踩0
  4. 2023-09-20 14:32我想到你就会笑[陕西省网友]103.193.189.71
    在C语言中,整型、字符型、浮点型等数据类型都有各自的特点和使用场景,深入了解它们的三个要素可以更好地发挥它们的优势。
    顶0踩0
  5. 2023-08-29 13:08ollllllllo[浙江省网友]103.244.253.65
    熟练掌握C语言数据类型的三个要素可以帮助我们更好地理解变量存储和操作的方式,从而提高程序的性能和可读性。
    顶5踩0
  6. 2023-08-07 11:45小学生作文网[湖北省网友]103.229.228.159
    @︴顔慕離°数据类型包括数据的存储长度、内存布局和取值范围三个要素,不同的数据类型决定了数据的表达方式和所占用的内存空间。
    顶6踩0
  7. 2023-07-16 10:21︴顔慕離°[广东省网友]202.174.75.146
    C语言数据类型是编程中非常重要的概念,理解数据类型的三个要素对于编写高效且可靠的代码至关重要。
    顶9踩0
相关阅读
扩展内容