目录
float(单精度浮点数):%f-------默认小数点后6位
Double(双精度浮点数):%lf------默认小数点后6位
进制之间的转换
我们所熟悉的进制有:十进制、二进制、八进制、十六进制
二进制:逢2进1: 0~1
八进制:逢8进1:0~7
十进制:逢10进1:0~9
十六进制:逢16进1:0~9、a(A)~f(f)
为了区分不同的进制:(在不同的进制前加上前缀)
76 076:(八进制) 0x76(十六进制)0xaf / 0XAF
其他进制转十进制:对应的数乘以其他进制的指数次幂(0开始)
二进制转十进制:1010-----------> 0*2^0+1*2^1+0*2^2+1*2^3
八进制转十进制:075------------> 5*8^0+7*8^1
十六进制转十进制:0xafc2----->2*16^0+12*16^1+15*16^2+10*16^3
十进制转其他进制:除以其他进制倒取余数
十进制转二进制:除2倒取余 37-------------> 100101
十进制转八进制:除8倒取余 37-------------> 045
十进制转十六进制:除16倒取余 37------------->0x25
二进制和八进制:
用三位二进制可以表示0~7
0~7 421
000-----------0
001-----------1
010-----------2
011-----------3
100----------4
101----------5
110-----------6
111-----------7
八进制转二进制:
076------------------> 111 110
二进制转八进制:
010 101 010 011----->02523
二进制和十六进制:
用4位二进制可以表示0~9,a(A)~f(F)
0~9、 a~f
0-----------0000
1-----------0001
2-----------0010
3-----------0011
4-----------0100
5-----------0101
6-----------0110
7-----------0111
8-----------1000
9-----------1001
a-----------1010
b-----------1011
c-----------1100
d-----------1101
e-----------1110
f-----------1111
十六进制转二进制:
0xafca----------------->1010 1111 1100 1010
二进制转十六进制:
0101 0001 0101------->0x515
基本的数据类型
有符号数:有正有负(在计算机中所有的数据都是以二进制的补码进行存储的)
有符号数:最高位用来表示符号位,0正1负
正数的原码、反码、补码都是一样的
+10: 0000 1010 ---------------------0000 1010
负数:
负数的原码:符号位为1,数据位直接转换为二进制
负数的反码:符号位不变,其他位取反(1变0,0变1)
负数的补码:反码加1
-10:
原码:1000 1010
反码:1111 0101
补码:1111 0110
切记切记有符号数是以补码的形式储存的!
知道一个数的补码:如何求得原码
1、减1取反:
补码:1111 0110
减1: 1111 0101
取反:1000 1010 -----> -10
2、补码的补码就是原码:
补码:1111 0110
取反:1000 1001
加1: 1000 1010--------> -10
Char:(1字节 == 8bit)
值域:
Unsigned char: 0000 0000 ----------1111 1111 ( 0~255)
Signed char: 1000 0000 ----------0111 1111 (-128~127)
补码存在:1000 0000
反码: 1111 1111
加1 : 1 1000 0000--------->>>1是符号位,表示负数,1的7次方是128,加符号为,所以是-128
0111 1111正数,原码反码补码一样,计算是2的7次方-1是127
当超过char可以表示的范围时:从头再开始数
Unsigned char c = 260;
Printf(“%d\n”,c); ------------->4
Signed char a = 130;
Printf(“%d\n”,a); ------------> -126
Int :(4字节 == 32bit)
值域:
Unsigned int :(0 ~ 2^32-1)
0000 0000 0000 0000 0000 0000 0000 0000---1111 1111 1111 1111 1111 1111 1111 1111
Signed int :( -2^31 ~ 2^31-1)
1000 0000 0000 0000 0000 0000 0000 0000---0111 1111 1111 1111 1111 1111 1111 1111
方法同char类型
Short:(2字节 == 16bit)
值域:
Unsigned short :(0- 2^16-1)
0000 0000 0000 0000 ----------- 1111 1111 1111 1111
Signed short:(-2^15 ----2^15-1)
1000 0000 0000 0000 ------0111 1111 1111 1111
方法同char类型
float(单精度浮点数):%f-------默认小数点后6位
4字节;保证6~7位的有效数据
Double(双精度浮点数):%lf------默认小数点后6位
8字节:有效数字的位数一般位:15~16位