进制转换转换以及原码反码和补码

一、进制转换

  1、数制和码制

常用数制表示法
十进制 二进制 八进制 十六进制 8421BCD码
0 0 0 0 0000
1 1 1 1 0001
2 10 2 2 0010
3 11 3 3 0011
4 100 4 4 0100
5 101 5 5 0101
6 110 6 6 0110
7 111 7 7 0111
8 1000 10 8 1000
9 1001 11 9 1001
10 1010 12 A 0001 0000
11 1011 13 B 0001 0001
12 1100 14 C 0001 0010
13 1101 15 D 0001 0011
14 1110 16 E 0001 0100
15 1111 17 F 0001 0101

  1、二进制数与十进制数之间的转换

    转换原则:按权展开相加,将二进制数写成N的各次幂之和形式,然后按十进制计算结果。

    (10111101)2 = 1x27+0x26+1x25+1x24+1x23+1x22+0x21+1x20 = (189)10

  2、二进制转八进制

     二进制(1 110   110  111  011  100)= (166734)8

      八进制 1    6     6      7      3      4

  3、二进制转十六进制

   二进制       (1101   1001  1110  0100)2 = (D9E4)16

十进制            13        9       14       4

十六进制         D         9        E        4

4、二进制转8421bcd码

  二进制转8421bcd码不能直接转,通常二进制数先转为十进制数,再转为bcd码

  (1101)= (13)10 = (0001 0011)bcd

5、M进制向十进的转换

  转换原则:按权展开相加,将M进制数写成N的各次幂之和形式,然后按十进制计算结果。

  (5213)6 = 5 x 6+ 2 x 62+ 1 x 61+ 3 x 60 = (1186)10

6、十进制向N进制的转换

  转换原则:十进制数除N后倒取余    (150)10 = (226)8

  

  

二、原码反码和补码

  二进制数中,第一位为符号位,1表示负数,0表示正数

1、正数:反码补码和原码一样

2、负数:

    原码:最高位是1,后面是其绝对值的二进制数

    反码:符号位不变,数据位按位取反

    补码:在其反码的最后一位+1

3、计算

  在计算机中运算中,加减法是高频运算,使用同一个运算器,可以减少中间变量存储的开销,这样也降低了CPU内部的设计复杂度

  减去一个数等于加上这个数的负数

  两个正数正数相加时,按照二进制加法直接计算即可

  如果有负数参与计算时则要使用其补码来参与计算。

  例

          负数:最左一位表示负,右面七位按位取反+1   -(0000010)=-2

原文地址:https://www.cnblogs.com/haoyujun135/p/11257154.html

时间: 2024-10-13 05:46:09

进制转换转换以及原码反码和补码的相关文章

进制的转化and原码反码和补码

常用的进制 1.二进制(0b):  由两个数字组成 0-1 2.八进制(0o):  由八个数字组成0-7 3.十六进制(0x):  由十六个数字组成:  0-f 各进制与十进制之间的相互转换 0b100   = 0x2^0 + 0x2^1 + 1x2^2 = 4(十进制) 0o100   = 0x8^0 + 0x8^1 + 1x8^2 = 64(十进制) 0x100   = 0x16^0 + 0x16^1 + 0x16^2 = 256(十进制) 二进制与八进制的转换 三位合成一位: 0b 100

<13>【了解】计算机中的进制+【理解】原码反码补码基本概念+【理解】为什么要引入反码、补码?+【掌握】位运算符介绍及使用+位运算应用:编程实现10进制转2进制

1 #include <stdio.h> 2 3 int main(int argc, const char * argv[]) { 4 5 //定义10进制数,打印出10.8.16进制的值 6 int a = 13; 7 printf("%d\n",a); 8 printf("%o\n",a); 9 printf("%x\n",a); 10 11 //int 64 4个字节 12 int b = 0b0000000000000000

【组原】计算机的原码, 反码和补码

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计

计算机的原码, 反码和补码

一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011.如果是 -3 ,就是 10000011 . 那么,这里的 00000011 和 10000011 就是机器数. 2.真值 因为第一位是符号位,所以机器数的形式值就不等于真正的数值.例如上面

进制的介绍,原码,补码,反码

计算机中的二进制: 一些固有的概念不介绍,直接更加形象例子的介绍: 比如: 十进制的1   转换为二进制就是   0 0 0 0 0 0 0 1       2的0次方=1 十进制的-1   转换为二进制就是  1 0 0 0 0 0 0 1 高位:其中红色标记的是高位,1是负数,0为正数 以-2为例子:(因为正数的原码补码反码都是一样的,所以不再描述) -2的原码:  1 0 0 0 0 0 1 0 --2的反码: 1 1 1 1 1 1 0 1 -2的补码: 1 1 1 1 1 1 1 0 

原码, 反码, 补码 详解

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计

[转]原码, 反码, 补码 详解 很全

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计

关于原码, 反码, 补码的复习

原本大一时考试90+的组成原理,隔了太长时间没使用,概念也慢慢模糊了,由于最近考试的基础知识有可能用到,于是,在网上找些资料,整理成这个文章,方便以后某天回来看看,好记性真不如烂笔头. 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011.如

详解 原码, 反码, 补码

本篇文章讲解了计算机的原码, 反码和补码. 并且深入探求了为何要使用反码和补码, 以及更进一步论证了为何可以用反码和补码的加法计算原码的减法. 论证部分如有错误请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机中用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计算机字长为8位