反码补码原码怎么转换,来看看方法吧。
1、首先原始代码的最高位是符号位,0表示正,1表示负,中间值表示数字的绝对值。
2、符号的反转,正数符号的反转与原符号相同,负数的补数是该符号的最低有效位数加上1。
3、补数,正数的补数与原代码相同,负数的补数在其倒数第一的基础上加1。零分为+0和-0。 进行不同符号的加法或同一符号的减法时,不能直接进行加法或减法,不能直接给出正负的结果。
4、必须先取绝对值,然后再加上减法。 符号比特由较大的绝对值决定,因此出现了转码。 反码是对原始代码的改进。补码在针对加减运算和正负零的问题上都解决了,平时用的最多的也就是补码。
十进制每位基数是:个位1,高位=低位*10,因此观察2018这个数和基数的关系:
1000 100 10 1
2 0 1 8 这个数包含2个1000,0个100,1个10和8个1
387D=?B,二进制计数实际上仅比十进制使用的基数不同而已
写出二进制每位基数:个位1,高位=低位*2,从个位开始写,写到比387大为止
512 256 128 64 32 16 8 4 2 1 用这组数从高到低顺序将387凑出来,用到的数下面写1,否则0
0 1 1 0 0 0 0 0 1 1 387包含1个256,1个128,1个2和1个1
因此,387D=110000011B
其他n进制也这么转换,使用n进制基数:个位1,高位=低位*n
十进制的各个位,称为:... 万、千、百、十、个。1/10、1/100 ...。
19,就称为:1*十、9*个。
二进制的各个位,称为:... 16、八、四、二、个。1/2、1/4 ...。
10011,就称为:1*16、0*八、0*四、1*二、1*个。
把十进制 387,转换为二进制,就是:110000011。
你做的步骤方法,也算正确。
但是,这只是【数制转换】而已,和原码反码补码,毫无关系。