十进制的小数转换成二进制:
小数部分和2相乘,取整数,不足1取0;每次相乘都是小数部分,顺序看取整的数就是转化后的结果。(有三位小数,就取3位二进制代替)
0.432 011 2^-1 2^-2 2^-3 0.25+0.125=0.375 ,使用0.375进行近似,都不是准确数(可以进行往下乘会无线接近这个数字,然后直到位数存储满)
数据在计算机中主要以补码形式存储
100MB 理想除以8 12.5m/bit峰值
计算机中存储的最小单位是字节(Byte)
双字节:WORD,汉字一般双字节(Windows)三字节(Linux)
双WORD:DWORD,4个字节
八进制以0开头,十六进制以0x开头
c语言不能直接书写二进制(机器语言??)
c语言中进制的表现形式有3种:十进制,八进制,十六进制
计算机中使用补码存储的原因:
1.统一0的存储方式:都用0000 0000作为原码
2.将符号位和其他位统一处理(符号位也可以参与计算)
3.将减法计算变为加法计算,只会加法(10-10变成10+(-10))
0000 1010 10
1111 0110 -10
4.两个用补码表示的数相加时候,最高位(符号位)有进位,则进位被舍弃
正数三码一致
76-32
76 原码:0100 1100
-32 原码:1010 0000 反码:1101 1111 补码:1110 0000
0100 1100
1110 0000
0010 1100 44补码
原码:0010 1100 2^5+2^3+2^2=32+8+4=44
76-82
-82 原码:1101 0010
反码:1010 1101
补码:1010 1110
0100 1100
1010 1110
1111 1010 -6补码
1000 0110 2^2+2^1=6
(-0变为-128,+0为0)有符号的8位,范围是-128~+127
无符号8位:0~255
数据存储将-0对应的二进制码变为最小值-128
数据存储的最大值+1后,变为存储的最小值