超详细介绍!!!带你认识各种进制数的及其转换以及原码,反码,补码
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;
结语:这些就是本期介绍的全部内容了
制作不易:各位看官老爷点赞加关注支持一下吧!万分感谢!!!
超详细介绍!!!带你认识各种进制数的及其转换以及原码,反码,补码相关推荐
- python二进制反码例题_python中的进制转换和原码,反码,补码
python中的进制转换和原码,反码,补码 计算机文件大小单位 b = bit 位(比特) B = Byte 字节 1Byte = 8 bit #一个字节等于8位 可以简写成 1B = 8b 1KB ...
- day017:Java进制转换、原码反码补码、位运算、位移运算符
一.进制介绍: 1.进制:指进位制,表示某一位置上的数,运算时是逢X进一. 十进制就是逢十进一,二进制就是逢二进一,八进制就是逢八进一. 2.Java中默认的数值都是十进制,如果要输入其他进制,在数值 ...
- Java进制转换、原码反码补码
一.负数的表示 最高位(最左侧的位)是用来表示正负的.0代表的整数,1代表负数.最高位称为符号位. 0b0000 1000 所表示的数字是 8 0b1000 1000 所表示的数字是 -8 二.原码反 ...
- java进制原码_Java 一一 进制、原码 反码 补码、移位操作
进制 二进制 和 十进制 相互转换 十进制 和 十六进制 相互转换 原码,反码,补码 原码.反码.补码: 在计算机内, 有符号数有三种表示法: 原码, 反码, 补码. 所有的数据的运算都是采用 补码 ...
- 各种进制数之间的转换
计算机中各种进制数之间的转换 各种进制之间的转化都可以通过二进制为桥梁 二进制之间整数的转换 示例1:二进制数1100转化为各种进制数 1100转化成十进制数 1100 = 1*23+1*22+0 ...
- 进制之间的快速转换法:8421码及原码反码补码之间的相互转换关系
进制之间的快速转换法: 十进制和二进制的指尖的快速转换法: 8421码,是BCD码的一种 二进制数据中的每个位上的1,都代表一个固定的数值,将固定的数值相加即可! 二进制: 1 1 1 1 1 1 1 ...
- 计算机不同进制数之间的转换,计算机进制数之间的转换002
不错 除以16取余和倍数 如: (120)10 120/16 =8 ...8(余8) 8(余数8)/16=0 (8) (120)10 =(88)16 回答人的补充 2009-08-14 09:42 计 ...
- 计算机组成原理——基本组成 进制转化 奇偶校验 原码 反码 补码 移码 移位 原码补码乘法除法 IEEE754 加法器ALU
笔记来源于王道考研视频 第一章 通过电信号传递信息(低电平代表0,高电平代表1) 计算机系统 计算机系统=硬件+软件 软件 系统软件 应用软件 操作系统,数据库管理系统(DBMS),标准程序库(编程时 ...
- 彻底明白各进制数之间的转换
进制之间的转换是很基础的知识,为了清晰.简单.易懂的弄清楚这方面,所以我才写这篇文章的念头,希望能让你再也不用担心.害怕进制之间的转换了. 二进制 二进制是计算技术中广泛采用的一种数制.二进制数据是用 ...
最新文章
- mysql和jdbc的区别_JDBC详解
- android中方法调用super(..)的相关知识
- 零基础自学python的建议-python 零基础建议学习吗 学习后工作稳定吗?
- 你应该知道的那些Android小经验
- C++调用C#的dll
- JxBrowser概述与简单应用
- javascript 获取DropDownList选定值的方法
- 重读GhostNet:使用轻量操作代替部分传统卷积层生成冗余特征以减少计算量
- Node.js之------模块篇
- mmap从低向高增长的legacy模式和从高向低增长的modern模式
- 数据分析报告应该包含的内容
- php 变量类型 typeof,typeof和instanceof的区别是什么
- 【直观理解】粒子滤波 原理及实现
- Ajax实现前台传值到后台
- C向Python传递数组和List参数
- Ubuntu卸载Anaconda步骤
- spring boot项目使用ojdbc8连接oracle 12c(12.2.0.1.0),解决启动极慢问题!
- 高并发如何处理,解决方案
- golang mysql 非阻塞_Golang 实现轻量、快速的基于 Reactor 模式的非阻塞 TCP 网络库...
- 计算机毕业设计Java醋坊定制销售平台(源码+系统+mysql数据库+lw文档)