详解原码、反码与补码存储与大小
详解原码、反码与补码存储与大小
原码:
如果机器字长为N个bit,那么一个数的原码就是N位二进制数,最高位
是符号位,1代表负数,0代表正数。
反码:
正数的反码就是原码,负数的反码就是符号位不变,其他取反。
补码:
正数的补码与其原码相同;负数的补码是在其反码的末位加1。
(计算机中的数都是以补码形式存储的)
补码的形式是为了进行正负数二进制的加减操作
char为1个字节,8个bit位,看看内存中是怎么存储的
十六进制 二进制(补码) 反码 原码 实际值 char a = 127; //7f 0111 1111 127 char b = 128; //80 1000 0000 0111 1111 1000 0000 -128 char c = -128; //80 1000 0000 0111 1111 1000 0000 -128 char d = -1; //ff 1111 1111 1111 1110 1000 0001 -1
-128可能大家会有疑问,1000 0000是负数,按补码反码原码的方式往回推减一为0111 1111,取反1000 0000为128,因为是负数所以就是-128.
所以signed char的最大值为127,最小值为-128.
unsigned是无符号的意思,就是没有符号位。
unsigned char e = 256; //00 0000 0000 0 unsigned char f = -1; //ff 1111 1111 255 unsigned char g = 255; //ff 1111 1111 255
因为没有符号位,所以原反补码都一样,为什么-1的值为255呢,-1的原码是0000 0001(没符号位),反码1111 1110,补码
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
java中原码、反码与补码的问题分析
1.原码.反码和补码定义 1.原码 将最高位作为符号位(以0代表正,1代表负),其余各位代表数值本身的绝对值(以二进制表示).为了简单起见,我们用1个字节来表示一个整数. +7的原码为: 00000111 -7的原码为: 10000111 2.反码 一个数如果为正,则它的反码与原码相同:一个数如果为负,则符号位为1,其余各位是对原码取反.为了简单起见,我们用1个字节来表示一个整数: +7的反码为:00000111 -7的反码为: 11111000 3.补码 补码:
-
C语言基础 原码、反码、补码和移码详解
原码.反码.补码.移码的作用? 在计算机内,机器数有无符号和带符号数之分.无符号数表示正数,在机器数中没有符号位.位于无符号数,若约定小数点的位置在机器数的最低位之后,则是纯整数:若约定小数点的位置在机器数的最高位之前,则是纯小数.对于带符号数,机器数的最高位是表示正.负的符号位,其余位则表示数值.若约定小数点的位置在机器数的最低数值位之后,则是纯整数:若约定小数点的位置在机器数的最高数值位之前(符号位之后),则是纯小数. 为了便于运算,带符号位的机器数可采用原码.反码和补码等不同的编码方法,
-
原码, 反码与补码基础知识详细介绍
原码, 反码,补码详解 本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式, 叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,
-
详解原码、反码与补码存储与大小
详解原码.反码与补码存储与大小 原码: 如果机器字长为N个bit,那么一个数的原码就是N位二进制数,最高位 是符号位,1代表负数,0代表正数. 反码: 正数的反码就是原码,负数的反码就是符号位不变,其他取反. 补码: 正数的补码与其原码相同:负数的补码是在其反码的末位加1. (计算机中的数都是以补码形式存储的) 补码的形式是为了进行正负数二进制的加减操作 char为1个字节,8个bit位,看看内存中是怎么存储的 十六进制 二进制(补码) 反码 原码 实际值 char a = 127; //7f
-
c语言 数据存储与原码 反码 补码详细解析
目录 前言 1.数据的类型介绍 1.1整形家族 2.整形在数据内存中的存储 2.1 原码 反码和补码(三种整型数的表示方法) 2.2大小端字节序序的介绍 2.3 练习 3.浮点型在内存中的存储 3.1 先举一个例子 3.2 浮点数储存的规则 前言 学习本章你会了解: 1.数据类型详细介绍 2.整形在内存中的存储:以及了解原码.补码.反码 3.大小端字节序的介绍和判断 4.浮点型在内存中的存储解析 1.数据的类型介绍 在学习数据储存之前,让我们先认识一下数据类型.以下这些数据类型是我们初学c语言时
-
详解Python中如何将数据存储为json格式的文件
一.基于json模块的存储.读取数据 names_writer.py import json names = ['joker','joe','nacy','timi'] filename='names.json' with open(filename,'w') as file_obj: json.dump(names,file_obj) 解释:我们先导入json模块,再创建一个名字列表,第5行我们指定了要将该列表存储到其中的文件的名称.通常使用扩展名.json来指出文件存储的数据为json格式.
-
详解docker pull下来的镜像存储在哪里
20200804补充:文章可能说法有误.大佬可查询其他答案. docker pull xxx,就可以把想要的镜像拉下来直接使用,但是pull下来的镜像存储在哪里呢?这里做下记录: 此处docker 版本为:Docker version 1.13.1 1. 进入docker目录,如下: root@iZuf6axmuekh1n14dwcufmZ:/# cd var/lib/docker/ root@iZuf6axmuekh1n14dwcufmZ:/var/lib/docker# ls aufs co
-
JDK动态代理步骤详解(源码分析)
动态代理步骤 1.创建一个实现接口InvocationHandler的类,它必须实现invoke方法 2.创建被代理的类以及接口 3.通过Proxy的静态方法 通过Proxy的静态方法 ProxyObject proxyObject = new ProxyObject(); InvocationHandler invocationHandler = new DynamicProxy(proxyObject); ClassLoader classLoader = proxyObject.getCl
-
详解Electron中如何使用SQLite存储笔记
目录 前言 数据库的选择 安装 创建表 Service Controller 业务 总结 前言 上一篇,我们使用 remirror 实现了一个简单的 markdown 编辑器.接下来,我们要学习如何去存储这些笔记. 当然了,你也可以选择不使用数据库,不过若是你以后需要将该应用上架到 mac Apple Store ,就需要考虑这个了.因为上架 mac 应用需要启用 sandbox,当你第一次访问笔记中的媒体文件时,都要打开选择文件的弹窗,通过让用户主动选择来授权访问沙箱外的媒体文件.不过,如果你
-
详解C语言中数据的存储
目录 一.类型归类 1.整形家族 2.浮点型家族 3.指针类型 4.空类型 二.类型的意义 三.数据在类型中存储(以整形和浮点型为例子) 1. 关于 存储的基本概念 2.存储模式 四.应用 1. 2. 对于char范围的讨论 总结 一.类型归类 对于基本的c语言数据类型的基本归类 1.整形家族 char (内存存储的为ascall码值,存储为整数) unsigned char// unsigned为无符号关键字 signe char// short unsigned short (int)//
-
PHP详解ASCII码对照表与字符转换
一,通用的ASCII码对照表 图解ASCII码对照表图,以字符A为例Dec表示十进制,如65Hx表示十六进制,如41Oct表示八进制,如101Char表示显示字符,如A ASCII码对照表图分为两个单元1,控制字符 0-31和1272,可显示字符 32-126(1)48-57为0到9十个阿拉伯数字:(2)65-90为26个大写英文字母:(3)97-122号为26个小写英文字母:(4)其它标点符号.运算符号等: 二,ASCII扩展码对照表 三,PHP字符转换函数说明 具体字符转换函数说明请参考[P
-
详解Asp.net Core 使用Redis存储Session
前言 Asp.net Core 改变了之前的封闭,现在开源且开放,下面我们来用Redis存储Session来做一个简单的测试,或者叫做中间件(middleware). 对于Session来说褒贬不一,很多人直接说不要用,也有很多人在用,这个也没有绝对的这义,个人认为只要不影什么且又可以方便实现的东西是可以用的,现在不对可不可用做表态,我们只关心实现. 类库引用 这个相对于之前的.net是方便了不少,需要在project.json中的dependencies节点中添加如下内容: "StackExc
随机推荐
- IOS 常见内存泄漏以及解决方案
- 用Java实现小球碰壁反弹的简单实例(算法十分简单)
- 深入探讨JAVA中的异常与错误处理
- Python在图片中添加文字的两种方法
- 使用Python的Twisted框架构建非阻塞下载程序的实例教程
- 用windows自带的ftp.exe实现断点续传的方法
- PHP实现一维数组转二维数组的方法
- php+xml结合Ajax实现点赞功能完整实例
- JavaScript中值类型和引用类型的区别
- 四、处理表单数据
- Android获取设备CPU核数、时钟频率以及内存大小的方法
- Android实现带有记住密码功能的登陆界面
- jQuery使用动态渲染表单功能完成ajax文件下载
- sqlserver 动态创建临时表的语句分享
- 关闭支付宝小额免密支付步骤详解
- c#字符串编码编码(encoding)使用方法示例
- Android给scrollView截图超过屏幕大小形成长图
- linux中使用grep命令详解
- Android使用OkHttp发送post请求
- python通过TimedRotatingFileHandler按时间切割日志