初识C语言——数据类型

一、数据类型

C语言当中的数据类型十分丰富,接着上篇文章对C语言当中的基本数据类型给大家做一个补充。
首先,大家得知道计算机当中的基本计算单位,一字节 = 8比特(一个比特位用来存储一个二进制位)。

基本类型

  1. 整型:分为短整型,整型,长整型。
  2. 实型:分为单精度实型,双精度实型。
  3. 字符型上一篇文章中已经做过介绍

1.整型

名称字节数
短整型(short)2
整型(int)4
长整型(long)4
无符号短整型(unsigned short)2
无符号整型(unsigned int)4
无符号长整形(unsigned long)4

*计算机以二进制形式储存整数。

2.原码、反码和补码

整数在计算机中通常有三种表示,即原码、补码、反码,按照运算规则,使用补码运算,可使符号位与数值部分一同参与运算,因此整数部的数值在内存中以补码的形式存放。

原码:最高位为符号位(0表示正数,1表示负数),其余各位代表数值本身的绝对值。
反码:正数的反码与原码一致;负数保持符号位为1,其它各位按位取反,即0变1,1变0
补码:正数的原码,反码,补码相同;负数的补码在反码的基础上+1(保持符号位为1)

下面为大家举例(以一个字节为例)

整数原码反码补码
+7000001110000011100000111
-7100001111111100011111001
+0000000000000000000000000
-01000000011111111100000000
二进制的转换

以 -7为例(当然还是以一字节为例)
在这里插入图片描述

实型

实型又称浮点数,例如1600.0又可写作1.6*1000,可见小数点是可以变动的,是不是形象生动呢!

类型字节数
单精度实型(float)4
双精度实型(double)8

常量——值常量和符号常量

值常量

1. 整型常量

常见的有十进制常量、八进制常量、十六进制常量

·十进制常量由0~9组成以及正负号,如12 -20 98;要明确指出的是长整型必须在数值后面加L或l,如120L,130l;无符号整型须在后面加U或u,如120U(并且负数后面不能加U或u,如-34U)
八进制数以0开头,由0~7构成。
十六进制由0x或0X开头,后跟0~9以及 a-f或A~F。

2. 实型常量——浮点数

简单来说就是

  • 数值后面加f表示单精度浮点数,如1.6f;一般情况下默认双精度浮点数如1.6
- 科学计数法

如1.23e-7或1.23E-7表示0.000000123

小数点左侧有且仅有 一位非零数字,并且e后只能为整数部分

补充两个转义字符(\ddd与\xhh)
  • \ddd:表示一位到三位八进制数所代表的字符;如\101代表65。``
  • \xhh:以\x开头表示一位到两位16进制数所代表的字符;如\x41代表65。
#include <stdio.h>
int main()
{
	printf("%c\n", '\101');
	printf("%c\n", '\x41');
	return 0;
}

在这里插入图片描述

可见运行结果,这两个转义字符所代表的数字对应的字符均为’A‘

3.符号常量(也就是我们可以利用标识符来自定义常量)

如:

# define PI 3.14

数据类型的长度

利用sizeof()关键字获取

#include <stdio.h>
int main()
{
	printf("%d\n", sizeof(char));
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(short));
	printf("%d\n", sizeof(long));
	printf("%d\n", sizeof(float));
	printf("%d\n", sizeof(double));
	return 0;
}

在这里插入图片描述
这里再着重强调一下sizeof()不会计算表达式,往往在代码编译的时候已经确定了类型如:

#include <stdio.h>
int main()
{
	int a = 0;
	int b;
	printf("%d\n", sizeof(a = b + 5));

	return 0;
}

就是说上述代码sizeof()不会对a = b + 5进行计算而是在编译的时候已经完成了对表达式的分析,确定了a的类型

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值