1.本文详细介绍了二进制,八进制,八进制和他们之间的相互转换

2.也详细介绍了原码,反码,补码以及它们之间的相互转换,让你更加了解计算机数据的底层运行逻辑

目录

一:认识各种进制数

1.十进制数

2.二进制数

3.八进制数

4.十六进制数

二:各种进制数的相互转换

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

二进制转换为十进制

十进制转换为二进制

2.二进制数与八进制数之间的转换

八进制转换为二进制

二进制转换为八进制

3.二进制数与十六进制数之间的转换

二进制转换为十六进制

十六进制转换为二进制

三:介绍原码,反码,补码

1.原反补码的价值(存在的意义)

2.计算机中分别是怎么表示正负数的

3.原码,反码,补码的转换

原码,反码,补码转换(正数)

原码,反码,补码转换(负数)

结语:这些就是本期介绍的全部内容了



一:认识各种进制数

1.十进制数

一般我们平时日常中说的12,55等一系列数字就是十进制数,这些数字的基本特征就是满10进1,且每位都以0-9表示。

那么在计算机的世界我们常用的进制数有三种,分别是二进制数,八进制数以及十六进制数

2.二进制数

二进制数是计算机唯一能处理的数,任何数据传入计算机中都会先被转换成二进制数,然后再被计算机处理

二进制数特征与十进制数大同小异:二级制数每位都只能是0或1,逢2进1

例如:01+01==10(末位1+1=2,向前进1位得到10)

二进制数的符号:B或者 在右下角标明2

如果一个数为11011B,则表明该数为二进制数

3.八进制数

八进制数:顾名思义八进制数的每一位只能用0-7来表示,逢8进1,

符号:O或者 在右下角标明8

例如:O45+O23==O70(末位5+3==8,则进1,结果为70(O表示该数为八进制数))

4.十六进制数

十六进制数有其特有的特点,它也是逢16进1,但是它的每一位的表示数据不同,

它的每一位表示数据为0-9,但遇到两位数的时候则用ABCDEF来分别表示10,11,12,13,14,15。

符号:Ox或者 在右下角标明16

例如:Ox3F(则表示末位为15,前一位为3的十六进制数)

逢16进1:运算时大于F(15)则进1

由于十六进制数表示的数足够大,一般在编译器中用来表示数据在计算机中存储的地址

二:各种进制数的相互转换

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

  • 二进制转换为十进制

方法:一般为按位权展开方程式之和

就是从低位到高位计算,每一位的数据(权)乘与2的相应次方(从2^0次方开始),然后在把他们的每一项结果加起来

例如:B(11010010)

转换为十进制:0*2^0 + 1*2^1 + 0*2^2 + 0*2^3 + 1*2^4 + 0*2^5 + 1*2^6 +1*2^7==210

*表示 乘

  • 十进制转换为二进制

方法:1.除二倒取余数法      2.直接高位到低位计算

1.除二倒取余数法

用要转换的十进制数一直除于2,直到余数为0结束

例:34—>100010

2.直接按高位到低位计算

该方法适用于比较熟练的时候使用

例子:34—100010

我们知道二进制每位对应的十进制为2^n,那么34在32到64之间,是满足32这个数的

所以34第6位上是1(32的是2的5次方,在第六位上),那么还剩下2没处理,那么二进制上第2位上为1(2正好为2的一次方上所以在第二位上),所以第5位,第4位,第3位,都为0;

当2在第二位上正好处理完了,所以第一位上也为0;

结果:100010

2.二进制数与八进制数之间的转换

  • 八进制转换为二进制

方法:一位转三位

把八进制的每一位转换位3位二进制,你如八进制某一位上是6,转为二进制就为110

(把八进制的每一位当成十进制,再转成二进制)

例子:O(56)

5->101    6->110

结果:101110B

  • 二进制转换为八进制

方法:三位转一位

就是八进制转二进制的逆运算

比如二进制101,转为八进制就为5

(注意怕位数不对称所以从后往前转换,不够三位的补0;

例子:1110110011B

011:3      110:6    110:6     1(不够3为前面补0)->001:1

结果:O(1661)

3.二进制数与十六进制数之间的转换

  • 二进制转换为十六进制

方法:四位转一位(与二进制转八进制相同)

从低位向高位依次取4位转换为十六进制(不够向前补0)

注意:十六进制的10-15是用A-F表示

例子:10011010001B

0001:1      1101(13):D    100(不够4位补0)->0100:4

结果:Ox4D1

  • 十六进制转换为二进制

方法:一位转四位(与八进制转二进制方法相同)

把十六进制数的每一位当成十进制分别转换为对应的二进制数

例子:OxFA5

F(15):1111   A(10):1010   5:0101

结果:111110100101B

三:介绍原码,反码,补码

1.原反补码的价值(存在的意义)

首先我们知道数值在计算机中表示形式为机器数,计算机只能识别0和1,使用的是二进制,

数值存在的本质就是为了运算,且最本质的计算为加减法;为了使用运算更加的全面,且能使负数与正数能一起计算,且为了使机器只需要运算加法也能达到减法的效果(能使运算速度更快),就诞生数值的原码,反码以及补码(需要详细了解可以去看《计算机组成原理》一书)

注:我们输入到计算机中的都是数值的原码,但是在计算机中被处理的是数值的补码

(计算机会自动把原码转换为补码再进行处理)

2.计算机中分别是怎么表示正负数的

数字数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的原码了.假设机器能处理的位数为8.即字长为1byte,原码能表示数值的范围为(-127~-0 +0~127)共256个.

例如:-1:原码为:(符号位'负数')1 000000000000000……00000001  (用最高位表示符号位,其他位为正常二进制)

1 :原码为:(符号位’正数‘)0 000000000000……00000001

3.原码,反码,补码的转换

  • 原码,反码,补码转换(正数)

重点:正数的原反补码相同,

原码就是数值所对应的二进制数

例如:整数:1

原码:(符号位)0 0000000……00000001

反码:(符号位)0 0000000……00000001

补码:(符号位)0 0000000……00000001

计算机底层运算过程

例子:整数:1+1

(底层运算的是补码,如下列)

0 0000000……00000001

+   0 0000000……00000001

=   0 0000000……00000010=>再转换为原码进行输出(一样)

结果:2

  • 原码,反码,补码转换(负数)

重点:负数与整数不同,需要把原码先转换为反码,再把反码转换为补码

原码:为数值转换的二进制数

反码:符号位除外,其他位取反

补码:反码+1

例如:-1    原码为:(符号位)1 000000000……00000001

反码为:(符号位)1 1111111111……111111110

补码为:(符号位)1 1111111111……111111111

底层运算过程:

例子:2-1  实际上计算机会将其转换为加法:2+(-1)

2  为正数:原反补相同:00000000……00000010

-1为负数:原码:           10000000……00000001

反码:            111111111……111111110

补码:            111111111……111111111

计算:补码与补码计算:

00000000……00000010(32位)

+   111111111……111111111(32位)

=  100000000……00000001(33位)

由于(int)整数最多只能有32位,所以低位开始,向前32位算有效数据

结果补码:00000000……00000001     符号位为0,说明是正数

正数原反补相等,所以结果为1;

结语:这些就是本期介绍的全部内容了

制作不易:各位看官老爷点赞加关注支持一下吧!万分感谢!!!

超详细介绍!!!带你认识各种进制数的及其转换以及原码,反码,补码相关推荐

  1. python二进制反码例题_python中的进制转换和原码,反码,补码

    python中的进制转换和原码,反码,补码 计算机文件大小单位 b = bit 位(比特) B = Byte 字节 1Byte = 8 bit #一个字节等于8位 可以简写成 1B = 8b 1KB ...

  2. day017:Java进制转换、原码反码补码、位运算、位移运算符

    一.进制介绍: 1.进制:指进位制,表示某一位置上的数,运算时是逢X进一. 十进制就是逢十进一,二进制就是逢二进一,八进制就是逢八进一. 2.Java中默认的数值都是十进制,如果要输入其他进制,在数值 ...

  3. Java进制转换、原码反码补码

    一.负数的表示 最高位(最左侧的位)是用来表示正负的.0代表的整数,1代表负数.最高位称为符号位. 0b0000 1000 所表示的数字是 8 0b1000 1000 所表示的数字是 -8 二.原码反 ...

  4. java进制原码_Java 一一 进制、原码 反码 补码、移位操作

    进制 二进制 和 十进制 相互转换 十进制 和 十六进制 相互转换 原码,反码,补码 原码.反码.补码: 在计算机内, 有符号数有三种表示法: 原码, 反码, 补码. 所有的数据的运算都是采用 补码 ...

  5. 各种进制数之间的转换

    计算机中各种进制数之间的转换 各种进制之间的转化都可以通过二进制为桥梁 二进制之间整数的转换 示例1:二进制数1100转化为各种进制数 1100转化成十进制数 ​ 1100 = 1*23+1*22+0 ...

  6. 进制之间的快速转换法:8421码及原码反码补码之间的相互转换关系

    进制之间的快速转换法: 十进制和二进制的指尖的快速转换法: 8421码,是BCD码的一种 二进制数据中的每个位上的1,都代表一个固定的数值,将固定的数值相加即可! 二进制: 1 1 1 1 1 1 1 ...

  7. 计算机不同进制数之间的转换,计算机进制数之间的转换002

    不错 除以16取余和倍数 如: (120)10 120/16 =8 ...8(余8) 8(余数8)/16=0 (8) (120)10 =(88)16 回答人的补充 2009-08-14 09:42 计 ...

  8. 计算机组成原理——基本组成 进制转化 奇偶校验 原码 反码 补码 移码 移位 原码补码乘法除法 IEEE754 加法器ALU

    笔记来源于王道考研视频 第一章 通过电信号传递信息(低电平代表0,高电平代表1) 计算机系统 计算机系统=硬件+软件 软件 系统软件 应用软件 操作系统,数据库管理系统(DBMS),标准程序库(编程时 ...

  9. 彻底明白各进制数之间的转换

    进制之间的转换是很基础的知识,为了清晰.简单.易懂的弄清楚这方面,所以我才写这篇文章的念头,希望能让你再也不用担心.害怕进制之间的转换了. 二进制 二进制是计算技术中广泛采用的一种数制.二进制数据是用 ...

最新文章

  1. mysql和jdbc的区别_JDBC详解
  2. android中方法调用super(..)的相关知识
  3. 零基础自学python的建议-python 零基础建议学习吗 学习后工作稳定吗?
  4. 你应该知道的那些Android小经验
  5. C++调用C#的dll
  6. JxBrowser概述与简单应用
  7. javascript 获取DropDownList选定值的方法
  8. 重读GhostNet:使用轻量操作代替部分传统卷积层生成冗余特征以减少计算量
  9. Node.js之------模块篇
  10. mmap从低向高增长的legacy模式和从高向低增长的modern模式
  11. 数据分析报告应该包含的内容
  12. php 变量类型 typeof,typeof和instanceof的区别是什么
  13. 【直观理解】粒子滤波 原理及实现
  14. Ajax实现前台传值到后台
  15. C向Python传递数组和List参数
  16. Ubuntu卸载Anaconda步骤
  17. spring boot项目使用ojdbc8连接oracle 12c(12.2.0.1.0),解决启动极慢问题!
  18. 高并发如何处理,解决方案
  19. golang mysql 非阻塞_Golang 实现轻量、快速的基于 Reactor 模式的非阻塞 TCP 网络库...
  20. 计算机毕业设计Java醋坊定制销售平台(源码+系统+mysql数据库+lw文档)

热门文章

  1. mach3软件常见问题和解决方案
  2. 电脑某个服务器的网站都打不开,电脑某个网站打不开的解决方法
  3. 机械阻抗法与频响分析
  4. 6、电磁场与电磁波麦克斯韦方程组建立
  5. 肿瘤NGS生信知识来源-博客、公众号、网站
  6. render()函数进行服务器端渲染(详细)
  7. 【奇yin秘技】前端利用k8s环境变量减少镜像重构次数
  8. drupal7分类权限控制方法
  9. 维吉尼亚密码加解密与破解
  10. Xbox录屏功能录制没声音的解决办法