原码、反码、补码的转换。
计算机是以补码的方式进行存储数据的。一般补码是通过:原码→反码→补码的转换求得。
注:1.此篇以8位二进制为例讲解,即byte类型。
2.byte所占位数8位,取值范围为(-2)^7 ~ 2^7-1 or -128~127。
3.此篇都为十进制转二进制。
先了解一些概念:
-符号位:二进制数的最高位,表示数的正负。(0表示值为正,1表示值为负。)
-数值位:符号位后面的几位。(所以8位二进制所用的数值位只有7位。)
例:
20的原码:0 0010100,此处蓝色的0为符号位,即值为正;后面的7位红色数为数值位。
-20的原码:1 0010100。此处蓝色的1为符号位,即值为负;后面的7位红色数为数值位。
一、正数的原码,反码,补码。
以66为例。
原码:0 1000010
反码:0 1000010
补码:0 1000010
即:正数的原码,反码,补码是一样的。
二、负数的原码,反码,补码。(转换中符号位都不变)
原码→补码的快速转换 。(一般记住原码转补码就行,但是在考试中可能会考反码。)
在原码中,符号位不变,从 右 往 左 找第一个1,这个1左边(紫色)取反,右边(蓝色)不变。
-66的原码:1 1000010
-66的补码:1 0111110
-16的原码:1 0010000
-16的补码:1 1110000
1.负数的原码→反码。
在原码中,符号位不变,数值位按位取反。
-66的原码:1 1000010
-66的反码:1 0111101
-16的原码:1 0010000
-16的反码:1 1101111
2.负数的反码→补码。
在反码中,符号位不变,末位+1。
-66的反码:1 0111101
-66的补码:1 0111110
-16的反码:1 1101111
-16的补码:1 1110000
总结:
正数的原码,反码,补码是一样的。
负数:以-22为例。
原码 1 0010110
反码 1 1101001 //在原码的基础上,符号位不变,数值位按位取反。
补码 1 1101010 //在反码的基础上,符号位不变,末位+1。
原码→补码的快速转换:
原码 1 0010110
补码 1 1101010 //在原码中,符号位不变,从右往左 找第一个1,这个1左边取反,右边不变。
原码、反码、补码的转换。相关推荐
- Debug和release版本区别 原码反码补码的转换及存储
#define _CRT_SECURE_NO_WARNINGS 1 //Debug和release版本区别(VS2019版) //例子 #include<stdio.h> //int m ...
- 【实验作业】微处理器原理与应用 CPUHomework2.1【二进制 原码 反码 补码 数制转换 典型例题】
一.选择题 1.一个四位二进制补码的表示范围是(B) A.0-15 B.-8-7 C.-7-7 D.-7-8 2.十进制数- 48 用补码表示为(B) A.10110000 B.11010000 C. ...
- 原码 反码 补码的相互转换
原码 反码 补码的相互转换 原码 反码 补码的转换 还是比较 简单基础的问题.之前学习java的时候就学过,后来忘记了,忘记了!!!,后来学了位移运算符,左移 右移 无符号右移 之后就由有点儿懵了. ...
- python二进制反码例题_python中的进制转换和原码,反码,补码
python中的进制转换和原码,反码,补码 计算机文件大小单位 b = bit 位(比特) B = Byte 字节 1Byte = 8 bit #一个字节等于8位 可以简写成 1B = 8b 1KB ...
- 数制和码制(数制的转换的方法,BCD码<8421,2421,5421,余三码>,格雷码,原码,反码,补码,定点数和浮点数)
目录 1.数制的转换 1)二,八,十六进制进制转十进制 加权系数求和法 2)十进制转二,八,十六进制 除基取余法(短除法) 减权定位法 3)二,八,十六进制的相互转换 2.BCD码 3.格雷码 4.原 ...
- day017:Java进制转换、原码反码补码、位运算、位移运算符
一.进制介绍: 1.进制:指进位制,表示某一位置上的数,运算时是逢X进一. 十进制就是逢十进一,二进制就是逢二进一,八进制就是逢八进一. 2.Java中默认的数值都是十进制,如果要输入其他进制,在数值 ...
- 【计算机组成原理】原码 反码 补码 移码的转换
原码 反码 补码 移码的转换 这三种机器码都是二进制数据的表现形式,可以表现正数和负数. 原码是可以直接表现出数据的正负和大小. 正数的原码.反码和补码都是相同的. 反码用于原码和补码的转换的功能. ...
- 原码 反码 补码 之间在小数正数间的转换
原码 反码 补码 之间在小数正数间的转换 基本转换 对于正数 原码等于反码等于补码(小数也一样) 对于负数 原码除了符号位取反即反码 反码基础之上+1即补码 但是在遇到某些题时候还是会混淆,比如三者在 ...
- Java进制转换、原码反码补码
一.负数的表示 最高位(最左侧的位)是用来表示正负的.0代表的整数,1代表负数.最高位称为符号位. 0b0000 1000 所表示的数字是 8 0b1000 1000 所表示的数字是 -8 二.原码反 ...
- 原码反码补码之间运算转换
1. 正数的原码=反码=补码 2. 负数的反码=在其原码的基础上, 符号位不变,其余各个位取反 负数的补码=在反码的基础上+1 负数的补码=在原码的基础上, 符号位不变, 其余各位取反, 最后末位+ ...
最新文章
- Matlab出现未定义与‘char’类型的输入参数想对应的函数‘xxx‘
- python在数据分析方面的应用、下列说法正确_智慧树知到大数据分析的python基础答案...
- 太强了,头发丝完整保留!华盛顿大学研究员开源的实时视频抠图工具
- 安装python3.8出现ModuleNotFoundError: No module named ‘_ctypes’解决办法
- 并查集 --算法竞赛专题解析(3)
- Gym - 101635J - Frosting on the Cake
- 多线程编译与运行linux,Linux系统下多线程程序编译makefile文件
- VBA程序升级,vba在线更新
- java_Stream流和Optional
- 2020-11-30
- Sublime配置java运行环境(IntelliJ IDEA也许更好用)
- 确认!贾扬清加盟阿里,任技术副总裁
- 台大林轩田·机器学习技法记要
- resultType和parameterType的基本使用和区别
- 用Tera Term取代Windows上的超级终端
- 校内互测 B. 王者荣耀 (二分答案+dp)
- 阿里云短信验证码签名模板创建方法
- 矩阵论: 第二章: 内积空间
- 云服务器饥荒_阿里云搭建饥荒专用服务器
- 如何打开查看网页html源码