数制与编码基础知识
Posted WillWinwin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数制与编码基础知识相关的知识,希望对你有一定的参考价值。
表式方式
二进制:101(B)
八进制:306(O/Q)
十进制:23(D)
十六进制:12ABCDEF(H)转换方式
二进制转八进制:从小数点切开,整数部分自右向左三位数字转换为一位八进制,小数部分自左向右三位数字转换为一位八进制,位数不够加0
二进制转十六进制:方式如同二进制转八进制,不同在于四位转一位
八进制转十六进制:先八进制转二进制,然后再二进制转十六进制二进制运算
(1)加减运算
与十进制加减运算相同
(2)乘除运算
乘法:0x任何数=0 1x任何数=任何数
除法:与十进制无异
(3)逻辑运算
与或非异或(相同为0不同为1)真值与字长
(1)真值
计算机中使用二进制数的第一位表示正负,比如第一位是1表示-,0表示正,则1111的真值为-7,0111的真值为7
(2)字长
字长表示的是计算机能够一次处理的二进制数值码的长度,是计算机存储和运算处理的运算单位。
比如通常说的32位处理器字长为32。
通常认为16位为一个字,32位是一个双字,64位是两个双字。
8位字长的处理器可处理数据的范围是(-127 - -0,+0 - 127)共256位数(其中+0和-0的二进制表示并不一样)四种表达方式
(1)原码
(2)补码(利用了模的思想,在时钟当中,-10 = 2)
补码的出现是为了解决原码存在的异号相加减会出现的问题以及原码的0具有二义性的问题。
比如101 + 001 = 110 = -2(D)这样的问题
补码的计算方式:
正数的补码就是本身, 负数的补码是先把除了符号位以外的所有位数取反,再在末位+1获得。
比如101的补码就是110+001=111,001的补码就是001,于是101+001=111+001=000为0。
(3)反码(除符号位以外取反即可,反码是原码向补码进化的过渡,事实证明不能完好解决原码存在的问题)
(4)移码
真值部分与补码相同,符号部分与补码相反。
求解方法:先求出反码,再把符号位取反即可。
(5)补码运算
加法:
两数和的补码=两数补码之和
减法:
两数差的补码=被减数的补码+减数负值的补码
减数的负值计算方式:全部位(包含符号位)取反再加1
以上是关于数制与编码基础知识的主要内容,如果未能解决你的问题,请参考以下文章