###C语言程序设计-----C语言学习(11)#数据的存储和基本数据类型
前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步。
一. 数据的存储
1.整型数据的存储
计算机处理的所有信息都以二进制形式表示,即数据的存储和计算都采用二进制。首先介绍整型数据的存储格式,不妨假设每个整数在内存中占用两个字节存储,最左边的一位(最高位)是符号位,0代表正数,1代表负数。
数值可以采用原码,反码,补码等不同的不同方法。为了便于计算机内的运算,一般以补码表示数值。
原码:
最高位为符号位,0代表正数,1代表负数,非符号位为该数字绝对值的二进制。
反码:
正数的反码与原码一致,负数的反码是对原码按位取反,只是最高位(符号位)不变。
补码:
正数的补码与原码一致,负数的补码是该数的反码加1。
注意:这里的反码加1是从右边开始加1,同时注意二进制满2进1.
例如以-1为例:(这里取两个字节16位)
-1的原码是:1000000000000001
-1的反码是:1111111111111110
-1的补码是:1111111111111111
一些数值的补码表:
2.实型数据的存储
存储实型数据时,分为符号位,阶码和尾数三部分,如图所示,例如:实数-1.2345e+02是负数,阶码是2,尾数是1.2345.
3.字符型数据的存储
每个字符在内存中占用一个字节,存储它的ASCII码。例如字符型常量‘A’的ASCII码为65,转二进制它在内存中以01000001的形式存放。
二. 基本数据类型
C语言的3种基本数据类型是整型,字符型和实型。
如图所示:
1.整型与整型常量(整数)
(1)整型
整型是指不存在小数部分的数据类型。除了基本整型int以外,为了处理不同取值范围的整数,C语言提供了扩展的整数类型,它们的表示方法是在int之前加上限定词short,long或unsigned。
无符号的整型数据指不带符号的整数,即零或正整数,不包括负数。存储有符号的整型数据时,存储单元的最高位是符号位,其余各位表示数值,存储无符号(指定unsigned)的整型数据时,存储单元全部用于表示数值。
(2)整型常量
a.整数的表示
C语言中的整数有十进制,八进制和十六进制三种表现形式。十进制整数由正,负号和阿拉伯数字0~9组成,但首位数字不能是0。八进制整数由正,负号和阿拉伯数字0~7组成,首位数字必须为0.十六进制整数由正,负号和阿拉伯数字0~9,英文字符a~f或A~F组成,首位数字前必须有前缀0x或0X。
b.整数的类型
判断整数的类型,首先根据整数后的字母后缀。后缀l或L表示long型常量,后缀u或U表示unsigned型常量,后缀l和u或L和U表示unsigned long型常量。如果整数后面没有字母,就根据整数常量的值确定它的类型。
2.字符型与字符型常量
(1)字符型
每个字符型数据在内存中占用一个字节,用于存储它的ASCII码。所以C语言中的字符具有数值特征,不但可以写成字符常量的形式,还可以用相应的ASCII码表示,即可以用整数来表示字符。例如:设ch是字符变量,字符型常量A的ASCII码值是65,则ch=‘A’和ch=65等价。
注意:互换整型变量和字符型变量的定义和值时,整型数据的取值范围是有效的ASCII码。
(2)字符型常量
字符型常量指单个字符,用一对单引号及其所括起来的字符表示。如‘a’,‘X’,‘!’,‘ ’,(空格符)等都是字符型常量。
a.ASCII字符集
在ASCII字符集中列出了所有可以使用的字符,每个字符在内存中占用一个字节,用于存储它的ASCII码。
b.转义字符
有一些字符,如回车符,退格符等控制码,它们不能在屏幕上显示,也无法从键盘输入,只能用转义字符来表示。转义字符由反斜杠加上一个字符或数字组成,它把反斜杠后面的字符或数字转换成别的意义。
如图所示:
3.实型与实型常量(实数)
(1)实型
实数类型又称为浮点型,指存在小数部分的数。浮点型数据有单精度浮点型(float)和双精度浮点型(double),它们表示数值的方法是一样的,主要区别在于数据的精度和取值范围有所不同。与float型数据相比,double型数据的精度高,取值范围大。
(2)实型常量
实型常量即常说的实数,又称浮点数,可以用十进制浮点表示法和科学计数法表示。实型常量都是双精度浮点型。
感谢老铁的浏览,希望老铁可以一键三连加个关注,您的支持和鼓励是我前进的动力,后续会分享更多学习编程的内容。