数据类型(基本三类型)
此外数据又分为以下几大类型:
- 1. 整型:
int型:4字节(VC++中是4字节,Turbo是2字节),-2147473648~2147483647
( -231 ~ 231-1 )
short型:2字节,-32768~32767(-215 ~ 215-1)
long型:4字节,-2147473648~2147483647( -231 ~ 231-1 ).
long long型:8字节,-263~(263-1)
此外还有无符号(unsigned)整型,长度与有符号整型相同,只是取值范围不同,因为最左一位符号位在无符号整型中属于数值位
对应长度为:
Unsigned int:0~232-1
Unsigned short:0~216-1
… …
整型在存储单元中的存储方式:用整数的补码存放。(补码:正数的补码与正数相同,负数的补码是将负数的数值位取反再末尾加1)
疑问一:若向一个无符号整型变量赋值一个负数(-1),输出结果是多少?为什么?
答:65535。因为系统对-1先会转化成补码的形式(-1的补码为1111 1111)然后存储在无符号整型变量中。但是在输出时,符号位的1被看作了数值位,正好1111 1111对应的十进制数位65535,则输出65535.
- 2. 实型(浮点型)
浮点型数据是用来表示具有小数点的实数的.
实数是以指数的形式存放在存储单元中的(在存储时,系统将实型数据分成小数部分和指数部分分别存放).
float型:4字节(6位有效数字)
double型:8字节(15位)
long double型:8字节或16字节(15位或19位)
- 3. 字符型
字符是按其整数(字符的ASCII码)形式存储的。
只占一个字节长度
常见的有:
‘a’ 的ASCII码是十进制数97,二进制代码为110001
‘A’ 的ASCII码是十进制数65,二进制代码为1000001
‘1’ 的ASCII码是十进制数49,二进制代码为0110001
‘ ’(空格)的ASCII码十进制数为32,二进制代码为0100000
… …
疑问:定义char c = ‘a’;输出形式为 %d 和 %c 时的结果是什么?为什么?
答:97 a 因为%d表示输出其十进制整数形式,而%c表示输出其字符形式