当前位置:淳美吧 > 智慧生活 > 心理 > c语言数据类型的三个要素
手机版

c语言数据类型的三个要素

来源:淳美吧 阅读:2.26W 次
c语言数据类型的三个要素

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号以下的那些就叫"半角"字符了。

本文链接:https://www.chunmeiba.com/zhihuishenghuo/xinli/jgmlx4.html

Copyright © 2024. 淳美吧 All right reserved. 浙ICP备20204785号-2

文字美图素材,版权属于原作者。部分文章内容由网友提供推送时因种种原因未能与原作者联系上,若涉及版权问题,敬请原作者联系我们,立即处理。