2.二进制数据

1.计算机是由集成电路构成,高电平表示“1”,低电平表示“0”.
2.二进制值可以表示字符,图片,视频,音频等。
3.二进制和十进制的转换:
0:0 1:1 2:10 3:11 4:100 5:101 6:110 7:111 8:1000 9:1001 10:1010
11:1011 12:1100 13:1101 14:1110 15:1111 16:10000
4. 二进制的运算:
运算符: << 运算:左移 范例:3<<2=12–>322=12 乘法
运算符: >> 运算:右移 范例:3>>1=1–>3/2=1 除法
运算符: >>> 运算:无符号右移 范例:3>>>1=1–>3/2=1 逻辑右移
运算符: & 运算:与运算 范例:6&3=2
运算符: | 运算:或运算 范例:6|3=7
运算符: ^ 运算:异或运算 范例:6^3=5
确定二进制数值的长度(硬性的规定),
加法:逢2进1 计算机只能进行累加运算
减法:1101 +(-0011)加上补数,舍弃溢出
Q:如何表示负数?
补数:正数取反+1 超出长度的舍弃;0没有补码,负数位范围会比正数位范围+1;
乘法:左移N位,即乘以2^N
除法:右移N位,即除以2^N.可分为算术右移和逻辑右移;
算术右移:根据首位是“0”还是“1”,决定补“0”还是补“1”;
逻辑右移:不会在乎首位是“0”还是“1”,直接右移。一般表示数据的整体右移;
逻辑运算:真值表
5.二进制表示浮点数float:
1 0 1 1 . 1 1 1 1
8 0 2 4 . 0.5 0.25 0.125 0.0625
计算机存储模式:IEEE编码
float运算偏差解决办法:
1.不当小数运算
int main()
{
float sum=0;
for(int i = 0; i <100 ; i ++ ){
sum += 0.1****/10***;
};
printf("%f",sum***/10***);
return 0;
}
2.忽略后面,满足精度即可

猜你喜欢

转载自blog.csdn.net/weixin_44127727/article/details/87869176