云边日落 无可奈何花落去,似曾相识燕归来。 (宋· 晏殊·浣溪沙)
博主 云边日落
渝ICP备2021002886号-1渝公网安备50022502000591号博主 5天前 在线自豪地使用 Typecho 建站搭配使用 🌻Sunny 主题当前在线 1 人
歌曲封面 未知作品
  • 歌曲封面“魔女の宅急便”~ルージュの伝言松任谷由実

渝ICP备2021002886号-1

渝公网安备50022502000591号

网站已运行 4 年 165 天 2 小时 38 分

Powered by Typecho & Sunny

2 online · 41 ms

Title

认识数据类型和表达式(一)

郭儿宝贝

·

·

183次阅读
编辑语言
Article
⚠️ 本文最后更新于2021年07月13日,已经过了1239天没有更新,若内容或图片失效,请留言反馈
Test
C语言中的数据类型

C语言中可以使用的数据类型:
Test
C语言程序中所使用的每个数据都属于其中某一种类型,在编程时要正确地定义和使用数据。

数据的存储

整型数据的存储

计算机处理的所有信息都是以二进制形式表示,即数据的存储和计算都采用二进制。若把一种信息比作一种物品,那么计算机的存储位置便好似一个储物器,将我们的信息都放在计算机里边。那么我们应当如何与我们的储物器沟通呢?
答案是--二进制!
对于整型数据,假设每个整数在内存中占用两个字节存储( 1字节(byte)=8个二进制位(bits) ):
数值可以采用原码、反码和补码等不同方法表示。为了便于计算机内的计算,我们用补码表示数值。
以1为例:1的补码 0 000 0000 0000 0001

注意:最左边位(最高位)是符号位(+或-),0代表正数,1代表负数。

正数

正数的原码、反码和补码相同,即符号位是0,其余各位表示数值:
2^6的补码: 0 000 0000 0100 0000
两个字节的存储单元所能表达的最大正数是2^15-1,即32767: 0 111 1111 1111 1111

负数

负数的原码、反码和补码各不相同,以-32767为例:
原码:符号位是1,其余各位表示数值的绝对值, 1 111 1111 1111 1111
反码:符号位是1,其余各位对原码取反, 1 000 0000 0000 0000
补码:反码加1, 1 000 0000 0000 0001
减1,得到-32768,这是两个字节的存储单位能表示的最小负数。
每个整数都有一定的取值范围,若假设整型数据在内存中占用两个字节的存储,它的取值范围是[-32768,32767]。

实型数据的存储

存储实型数据时,分为符号位、阶码和尾数三部分。如: -1.2345e+02是负数、阶码是2、尾数是1.2345。实型数据的存储我们暂不详细讨论。

字符型数据的存储

每个字符在内存中占用一个字节,存储它的ASCII码。如字符型常量'A'的ASCII码为65,在内存中用 0100 0001的形式存放。
当我们定义一个字符型变量时,用 char y = 'A'char y = 65输出的都是A。

注意:
  • 若是输出能够显示的字符,用以上两种方式都可以;
  • 若是输出不能显示的字符,如回车,空格,是肉眼不能知道是否输出的字符,这时我们就可以用ASCII码输出。如: char y = 1,这时我们输出的便是“标题开始”。
    下面附一张ASCII码表:
    Test
基本数据类型

C语言有整型、字符型和实型3种基本数据类型,如下表1:

类别名称类型名数据长度取值范围
[有符号]整型int32位-2147483648~2147483647(-2^31~2^31-1)
[有符号]短整型[short]int16位-32768~32767
[有符号]长整型[long]int32位-2147483648~2147483647(-2^31~2^31-1)
无符号整型unsigned[int]32位0~4294967295(0~2^32-1)
无符号短整型unsigned short[int]16位0~65535(0~2^16-1)
无符号长整型unsigned long[int]32位4294967295(0~2^32-1)
字符型字符型char8位0~255
实型(浮点型)单精度浮点型float32位约±(10^-38~10^38)
双精度浮点型double64位约±(10^-308~10^308)

整型与整型常量(整数)

整型

整型是指不存在小数部分的数据类型。为了处理不同取值范围的整数,C语言提供了扩展的整数类型,即上表格所示的六种整型。
整型数据分为有符号和无符号。无符号的整型数据即指不带正负号的整型,即0或正数,所有位都用来表示数值。如2^15: 1000 0000 0000 0000.

  • 如上述表格1:C语言规定各种整型的长度:short型不长于int型,long型不短于int型。

整型常量(整数,取值不超过上表中列出的整型数据的范围)

整数的表示

C语言中整数有三种表现形式,分别是十进制、八进制和十六进制,如下表2:

组成部分注意  例子 分别用十进制数值表示
十进制+、-、数字0~9首位数字不能是01010
八进制+、-、数字0~7首位数字必须是00108
十六进制+、-、数字0~9、字母a~f或字母A~F表格0x1016
对于八进制数和十六进制数
  • 念法:和十进制数不同,如 16 八进制数和十六进制数都念 一六
  • 任何一个整数都可以用这三种表示方法表示,但并不影响它的数值。

    整数的类型

    根据整数后的字母后缀来确定:

  • 有后缀:
    L或l表示long型常量,如: -12L012344556l
    后缀U或u表示unsigned型常量,如: -12U012344556u
  • 没有后缀:
    根据表1的取值范围来确定。
    如:取值范围在 -32768~32767的是短整型。

    字符型与字符型常量

    字符型(内存中占有1个字节)

  • 可以写成字符常量形式,也可以用相应的ASCII码来表示。如:用 char y = 'A'char y = 65输出的都是A。
  • 字符型变量的值可以是字符或整数,可以被定义为整型变量;同时,整型变量的值,也可以是字符型数据,可以被定义为字符型变量。此时需注意整形数据的取值范围是有效的。

字符型常量

字符型常量指单个字符,用一对单引号及其所括起来的字符表示,如: 'a''A'  或
也可以用双引号表示字符串,如: "This is a char".

转义字符(由"\"和一个字符或数字组成,也是字符常量)

像回车符、退格符等控制码不能在屏幕上显示,也无法从键盘上输入,便可以用转义字符表示。
一些常见转义字符如表3:

字符含义
\n换行
\t横向跳格
\反斜杠
\"双引号
\'单引号
\ddd1~3位八进制整数所代表的字符
\xhh1~2位十六进制整数所代表的字符

如: \x41 表示ASCII码是十六进制数41的字符,即字母'A'。

实型与实型常量

实型

实型类型又称浮点型,指存在小数部分的数。
实型数据有单精度浮点型和双精度浮点型两种,它们表示数值的方法一样,主要区别在于数据的精度和取值范围有所不同。

  • 相比而言,双精度类型数据的精度高,取值范围大。
  • 实数在计算机中只能近似表示,运算中也会产生误差。
    它们的区别如下表:

    字节有效数字取值范围
    单精度浮点型4个7~8位±(10^-38~10^38)
    双精度浮点型8个15~16位±(10^-308~10^308)

实型常量

实型常量即常说的实数,又称为浮点数,可以用十进制浮点表示法和科学计数法表示法表示。

组成部分注意别称  正确例子 错误例子 
浮点表示法+、-、数字0~9和小数点必须有小数点,并且小数点的前后至少一边要有数字实数的小数形式3.14   0.0 
科学计数法+、-、数字和字母e或Ee是指数的标志,在e之前要有数据,e之后的指数只能是整数实数的指数形式6.026E-27E-5
  • 实型常量都是双精度浮点型.
    好啦!今天的内容就到这里,我们五一假后见!
现在已有 0 条评论,0 人点赞
Author:郭儿宝贝
作者
认识数据类型和表达式(一)
当前文章累计共 3913 字,阅读大概需要 5 分钟。
1个C语言程序
2021年4月10日 · 0评论
认识数据类型和表达式(一)
2021年4月30日 · 0评论
用C语言编写程序
2021年6月16日 · 2评论
Comment:共0条
发表
搜 索 消 息 足 迹
你还不曾留言过..
你还不曾留下足迹..
博主 不再显示
博主