文章目录
关于十进制转换
数电第一课,关于各进制数的转换;2,8,16进制的转换也不用说什么,主要是关于10进制转换其他进制会麻烦一点;
而在这之间,由其他进制转为10进制更是棘手;按权相加属实是麻烦了点;
比如1101.1011
2 3 + 2 2 + . . . 2^3+2^2+... 23+22+...这样算显然麻烦了点
当然,直接 8 + 4 + 1 + 1 2 + . . . 8+4+1+\frac{1}{2}+... 8+4+1+21+...会快些;
但是我还想更快
D . B D.B D.B这样子,显然D.B不能是13.11,而是 13 + 11 16 = 13.6875 13+\frac{11}{16} = 13.6875 13+1611=13.6875
这样做其实就是记住了对应的十六进制数;好吧,无他,惟手熟耳。
二进制4位一组,每多4位做相应的处理;
1 1101.1011 1000 = 1 × 16 + 13 + 11 16 + 8 256 1\times16+13+\frac{11}{16}+\frac{8}{256} 1×16+13+1611+2568
8进制如何呢?emmmm 不行,老实算。
关于二进制负小数补码表示
正数:原码反码补码一致;
负数:反码为(原码)取反,补码取反加一;
ALL: 符号位不变
最高位为符号位;负数为1,正数为0;这个都明白,要注意的只是:
原码1.1001 这是-0.1001还是+1.1001?
答案是: -0.1101
这个问题很多人拿标准说事,确实,论实用,不把它搞成8位16位32位什么的没法在计算机中使用;
但是我做个题,还要补上上几个0更是没必要;
我的理解是:补码最高位就是符号位,你需要几位,这几位的最高位就是符号位
所以原码1.1001代表 -.1001,也就是-0.1001;
+1.1001的原码就是01.1001,因为你N的小数点左边有1位(不包括符号位),N的原码的小数点左边就有两位,就是两位,最高位是0也不能消掉;
所以上面那个问题特意说明了原码1.1001,如果不说明的话,讨论“是-0.1001还是+1.1001”确实没有多大意义。
都知道原码反码补码原理类似钟表,23点之后是0点,我没有必要为了标准什么的把表盘扩充成100小时的;
工程上8位,16位数来表示负数是因为需要,我写个作业不需要8位16位;
果然上课还是要认真听啊⊙﹏⊙∥。