数据类型
在计算机的逻辑中只存在0或者1所以,计算机存储容量以bit(位)为位单位。 但是在程序中,一般以字节为单位。
比特位(bit):二进制数 0 1
1 Byte(字节) = 8bit
1个千字节(KB) = 1024字节
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
整型修饰符
short:用来缩短整型变量的尺寸,减少取值范围并节省内存,称为
整型。
long:用来增长整型变量的尺寸,增大取值范围并占用更多的内
存,称为长整型。
long long:用来增长整型变量的尺寸,增大取值范围并占用更多的
内存,称为长长整型。
unsigned:用来去除整型变量的符号位,使得整型变量只能表达非
负整数。
signed:表示有符号,一般情况下省略。
符号位:
有符号的整型数据,首位为符号位,0表示正数,1表示负数。
无符号的整型数据,没有符号位。
1000 0001 -1
0000 0001 1
编码形式:(计算机中存储和运算的都是 补码)
原码:正数直接使用二进制来表达,比如a=100,在内存中是
00...001100100
补码:负数用绝对值取反加一来表达,比如a=-3,在内存中是
11...1111111101
注意负数的补码在取反加一的时候,符号位是不变的。
char b = -3
源码:1000 0011(第一位为符号位)
反码:1111 1100(在源码对应数据上按位取反,符号位不变)
补码:1111 1101 (在反码基础上加1)
-1
1000 0001
1111 1110
1111 1111 1+2+4+8+16+32+64+128=255
进制:源码中可以使用八进制、十进制或者十六进制,但实际数据中一
律是二进制。
十进制(默认), 比如 1234。
八进制,比如 012 (0~7),013中0表示八进制的标识符,不可省
略。
十六进制,比如0x6FFAB,0xaa1234,(0~9 ~a(10) ~ f(15)),一个
F表示四个1。 0x 为十六进制的标识符,不可省略。
八进制转十进制,以2为底数。
十六进制转十进制,以16为底数。
二进制转八进制(从右往左看 三个一组 不足补0)
二进制十六进制:(从右往左看 四个一组 )
格式控制符
int 整型:%d
unsigned int 无符号整型: %u
short整型:%hd,h代表half,即一半的存储字节
long整型:%ld
long long整型:%lld
显示不同进制的前缀 : %#o、%#x
浮点型(实型)
概念:用来表达实数(有理数和无理数)的数据类型
分类:
单精度浮点型(float),64位机中典型尺寸是4字节
双精度浮点型(double),64位机中典型尺寸是8字节
长双精度浮点型(long double),64位机中典型尺寸是16字节
占用内存越多,能表达的精度越高
0 ---> 空字符 NULL '\0'
32 ---> 空格字符 ' '
48 ---> 数字字符 '0'
65 ---> 大写字母 'A'
97 ---> 小写字母 'a'
大写转小写 (差32)
char ch1 = 'A';
char ch2 = ch1 + 32; //'a'
char ch3 = ch1 + ' '; //'a'
单目运算(前后缀运算):
1. 前缀自加自减运算:先进行自加自减,再参与表达式运算
2. 后缀自加自减运算:先参与表达式运算,在进行自加自减