数值型数据的存储(进制)
二进制
方便计算机识别的表示形式
0B 前导符
特点:逢2进1 每一位上的数字整你是 0 或者 1
例如:0b1010 0b1100
八进制
0 前导符
特点:逢8进1 每一位上的数字范围 [0,7]
例如:0664 0777 0123
八进制转二进制:
方式1:八进制转十进制,然后十转二
方式2:每1位八进制数对应3位二进制数
0456 ----》 0B 100 101 110
0123 ----》 0B 001 010 011
二进制转八进制:
从右向左 每3位二进制数对应1位八进制数 高位不足补0
0B 101 111 010 ---> 0572
0B 001 001 101 011 ---> 01153
十进制
方便识别的表示形式
无前导符
特点:逢10进1 每一位上的数字范围 [0~9]
例如:123456789
二进制转十进制:
0B10 1011 --> 从右向左拿每一位的数字乘以2的几次方
—— 1*2^0 + 1*2^1 + 0*2^2 + 1*2^3 + 0^2*4 + 1*2^5
—— 1 + 2 + 0 + 8 + 0 + 32
—— 43
注意:其他任何进制转十进制都可以使用这种方式
只不过把底数的2 换成对应进制的数即可
对于二进制转十进制,如果用的比较熟练,可以使用 8421 的方式转换
0001 ---> 1
0010 ---> 2
0100 ---> 4
1000 ---> 8
十进制转二进制:
使用辗转相除法(除2取余法)
用十进制数除以2,保留商和余数,
用商继续除以2,再保留商和余数,
例如:
十六进制
0X 前导符
特点:逢16进1 每一位上的数字范围 [0,9] a:10 b:11 c:12 d:13 e:14 f:15
例如:0X56AB 0XAF12
十六进制转二进制:
方式1:十六进制转十进制,然后十转二
方式2:每1位十六进制数对应4位二进制数
0X56AB ----》 0b0101011010101011
二进制转十六进制:
从右向左 每4位二进制数对应1位十六进制数 高位不足补0
0b 0010 1101 0100 ---> 0X2D4
非数值型数据的存储(ASCII码)
常见字符对应的ascii码:
A ~ Z 65-90
a ~ z 97-122
0 ~ 9 48-57
\n 10
\0 0
例如:
十六进制(Hex) 八进制(Oct) 十进制(Dec)
linux下终端输入可查看
man ascii