【转载】原码,补码,反码

忘记基础的速度真可怕。加油~

You are, and you always will be making a difference.

1. 原码

原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:

[+1] = 0000 0001

[-1] = 1000 0001

第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:

[1111 1111 , 0111 1111]

[-127 , 127]

原码是人脑最容易理解和计算的表示方式.

2. 反码

反码的表示方法是:

正数的反码是其本身

负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.

[+1] = [00000001] = [00000001]

[-1] = [10000001] = [11111110]

可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算.

3. 补码

补码的表示方法是:

正数的补码就是其本身

负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)

[+1] = [00000001] = [00000001] = [00000001]

[-1] = [10000001] = [11111110] = [11111111]

对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值.

原文地址:https://www.cnblogs.com/danscarlett/p/8158103.html

时间: 2024-11-09 00:41:35

【转载】原码,补码,反码的相关文章

定点数表示方法——原码,补码,反码,移码

1. 真值和机器数 真值:数的实际值,用正负号和绝对值的某进制形式来表示,如+1010,-12,-FFFF等. 机器数:真值在计算机中的二进制表示,特点是符号数字化且数的大小受机器字长限制,其表示形式有原码,补码,反码,移码等. 2. 原码. 1). 定点小数: \[{x_{[{\rm{原}}]}} = \left\{ {\begin{array}{*{20}{l}}{x,0 \le x < 1}\\{{2^0} - x = {2^0} + \left| x \right|, - 1 < x

原码 补码 反码

一.原码 正数的原码就是它的本身 假设使用一个字节存储整数,整数10的原码是:0000 1010 负数用最高位是1表示负数 假设使用一个字节存储整数,整数-10的原码是:1000 1010 二.反码 正数的反码跟原码一样 假设使用一个字节存储整数,整数10的反码是:0000 1010 负数的反码是负数的原码按位取反(0变1,1变0),符号位不变 假设使用一个字节存储整数,整数-10的反码是:1111 0101 三.补码(再次强调,整数的补码才是在计算机中的存储形式.) 正数的补码和原码一样 假设

原码补码反码

#define _CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include <stdio.h> char stry[33] = { 0 }; char strf[33] = { 0 }; char strb[33] = { 0 }; void bcode(int num) { unsigned int data = 1 << 31;//左移31位 for (int i = 1; i <= 32; i++) { if (

JavaSE:命名规则、进制转换、原码补码反码、数据类型以及转换

1:关键字(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 全部小写. (3)注意事项: A:goto和const作为保留字存在. B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记 2:标识符(掌握) (1)就是给类,接口,方法,变量等起名字的字符序列 (2)组成规则: A:英文大小写字母 B:数字 C:$和_ (3)注意事项: A:不能以数字开头 B:不能是java中的关键字 C:区分大小写 (4)常见的命名规则(见名知意) A:包 全部小写 单级包:小写 举

二进制的原码补码和反码

二进制的最高位为符号位,其中0表示正数,1表示负数: 正数的原码补码反码都是相同的: 负数的反码是负数的符号位不变,其余位取反(即1变0,0变1): 负数的补码是反码加1: 举例:计算机字长为八位,所以转换一下, 正一的原码:0000 0001 反码:0000 0001 补码:0000 0001 (均相同) 负一的原码:1000 0001(最高位的1表示为负数) 反码:1111 1110(最高位的符号位不变,其余取反) 补码:1111 1111(反码加一) 原文地址:https://www.cn

[转载]原码, 反码, 补码 详解

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

原码、反码、补码的产生、应用以及优缺点有哪些?

作者:张天行链接:https://www.zhihu.com/question/20159860/answer/119405396来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 二.重温运算规则 首先我想把整套关于原码反码补码的运算规则准确清晰地写一遍,方便急需应用的知友参考,也希望大家首先能记住这套规定,再开始进一步的探讨. 所谓原码就是机器数,是加了一位符号位的二进制数,正数符号位为0,负数符号位为1,计算机中存储.处理.运算的数据通常是8位.16位.32位或

机器数,原码,反码,补码,移码

|   版权声明:本文为博主原创文章,未经博主允许不得转载. 在计算机中所有的数据的保存均是用二进制来实现的,而二进制的表示则是一串的0,1组成.而在计算机的表达中有着机 器数和原码,反码,补码和移码等数据的编码表示方法.其中这些编码的方法称为码制. (1).机器数 各种数据在计算机中的表示的形式称为机器数,其特点是数的符号用0.1来表示.机器数并不能算作真正的数值. (2).真值 机器数对于的实际数值称为该数的真值.也就是带符号的机器数(机器数是不带符号位的):机器数又分为无符号 数和有符号数

基础野:细说原码、反码和补码

Brief 说来惭愧虽然刚接触计算机时已经学过原码.反码和补码的内容,但最近重温时却发现“这是什么鬼东西”,看来当初只是应付了考试了而已.本篇将试图把他们说个明白,以防日后自己又忘记了. 在深入之前,我们先明确以下几点: 1. 本篇内容全部针对有符号数整数: 2. 对于有符号数整数,其在计算机中的存储结构是 符号位 + 真值域.其中符号位为0表示正数,1表示负数: 3. Q:既然已经有原码,那么为什么还要出现反码.补码等数值的编码方式呢? A:由于为了降低当时计算机物理电路的设计难度,决定采用加

原码、反码、补码 详解

作者:张子秋出处:http://www.cnblogs.com/zhangziqiu/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 原文链接:http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html 本篇文章讲解了计算机的原码.反码和补码,并且进行了深入探求了为何要使用反码和补码,以及更进一步的论证了为何可以用反码.补码的加