-128与-0

计算机存储数据是以补码形式存储。

如图

二进制中有符号数 如8位2进制256个数

从+127(即0111 1111原码)(0111 1111反码)(0111 1111补码)   此处如果继续数值+1会变成1000 0000即-128

到+1  (即0000 0001原码)(0000 0001反码)(0000 0001补码)  数值-1

到+0  (即0000 0000原码)(0000 0000反码)(0000 0000补码)  数值-1

到-1   (即1000 0001原码)(1111 1110反码)(1111 1111补码)  数值-1

到-2   (即1000 0010原码)(1111 1101反码)(1111 1110补码)  数值-1

到-127 (即1111 1111原码)(1000 0000反码)(1000 0001补码)  数值-1

到-128 (即 无法表示了原码)(  无法表示   反码)(1000 0000补码)  此处如果继续数值-1会变成0111 1111即+127

补码的使用从而解决了+0 -0的无意义重复问题。(原本原码1000 0000是-0,1000 0001是-1。。。1111 1111是-127,补码的使用令1000 0000由-0指定为-128)

这一指定是一位印度人指定的,好厉害。。。。

时间: 2024-10-13 15:27:32

-128与-0的相关文章

关于 -128 ,+128,-0,+0,-1,+1 的反码补码

一.反码的范围 反码表示法规定:正数的反码与其原码相同.负数的反码是对其原码逐位取反,但符号位除外. 在规定中,8位二进制码能表示的反码范围是-127~127. -128没有反码. 那么,为什么规定-128没有反码呢?下面解释. 首先看-0,[-0]原码=1000 000,其中1是符号位,根据反码规定,算出[-0]反码=1111 1111, 再看-128,[-128]原码=1000 000,假如让-128也有反码,根据反码规定,则[-128]反码=1111 1111, 你会发现,-128的反码和

自除数 是指可以被它包含的每一位数除尽的数。 例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。 还有,自除数不允许包含 0 。 给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。

def selfDividingNumbers(left, right): l=[] for i in range(left,right+1): a=str(i) if '0' in a: continue else: tem=[] for j in a: tem.append(i%int(j)==0) if all(tem): l.append(i) return l 原文地址:https://www.cnblogs.com/zhangtianxia/p/9061273.html

redis3.0.2 编译安装 (启动服务方式启动)

1.基础环境介绍: 操作系统:Centos 6.7 redis版本:3.0.2 2.开始安装: 1)基础安装 参考链接:http://309173854.blog.51cto.com/7370240/1710655         [[email protected] ~]#yum -y install tcl         [[email protected] ~]# wget http://download.redis.io/releases/redis-3.0.2.tar.gz     

CentOS7.3下利用cobbler2.8.0部署exsi5.5

前言:昨天提到了如何在CentOS7下利用cobbler来部署CentOS,没接触过的朋友可以参考我上一篇的文章:http://molewan.blog.51cto.com/287340/1908475,今天又测试了下利用cobbler2.8.0部署esxi5.5,参考了网上的一些资料,但与我实际操作中碰到的有些差异,所以特意记录下来. 1.查看cobbler的版本 [[email protected] ~]# cobbler --version Cobbler 2.8.0   source: 

CUDA_进行图像特征匹配V2.0

在V1.0的基础上改变了排序方式并对部分并行代码进行了优化 #include "cuda_runtime.h"#include "device_launch_parameters.h"#include <string>#include <stdio.h>#include <stdlib.h>#include <iostream>#include <fstream>#include <sstream&g

从如何判断浮点数是否等于0说起——浮点数的机器级表示

本文很大程度上收到林锐博士一些文章的启发,lz也是在大学期间读过,感觉收益良多,但是当时林锐也是说了结论,lz也只是知其然,而不知其所以然,为什么要那样写?为什么要这样用?往往一深究起来就稀里糊涂了,现在有幸还是继续读书,我发现了很多问题理解的还不透彻,亡羊补牢. 比如:有int d;  int *d; bool d; double d:几个变量,经过一系列的计算之后,那么去判断这个四个变量是否等于0该怎么做? 很多菜鸟或者编程功底不扎实的就会出错,一些烂书,尤其国内的一部分大学教材,教授编程语

【OpenCV】opencv3.0中的SVM训练 mnist 手写字体识别

前言: SVM(支持向量机)一种训练分类器的学习方法 mnist 是一个手写字体图像数据库,训练样本有60000个,测试样本有10000个 LibSVM 一个常用的SVM框架 OpenCV3.0 中的ml包含了很多的ML框架接口,就试试了. 详细的OpenCV文档:http://docs.opencv.org/3.0-beta/doc/tutorials/ml/introduction_to_svm/introduction_to_svm.html mnist数据下载:http://yann.l

Codis 3.0 Release (密码验证) 群集部署文档

前言: Codis 3.x 由以下组件组成: Codis Server:基于 redis-2.8.21 分支开发.增加了额外的数据结构,以支持 slot 有关的操作以及数据迁移指令.具体的修改可以参考文档 redis 的修改. Codis Proxy:客户端连接的 Redis 代理服务, 实现了 Redis 协议. 除部分命令不支持以外(不支持的命令列表),表现的和原生的 Redis 没有区别(就像 Twemproxy). 对于同一个业务集群而言,可以同时部署多个 codis-proxy 实例:

EF6.0+APS.NET MVC5.0项目初探三(code first实体映射到数据库)

到这里架构就搭建完了,该向里面填充东西的时候了,如上篇:EF6.0+APS.NET MVC5.0项目初探二(类库引用关系及说明) 第一步 :在需要添加EF的类库Domain.DbContext上右击->管理NuGet程序包->找到Entity FrameWork下载安装. 如图: 第二步:新建DbContext 第三步:在类库Domain.Entity上添加引用System.ComponentModel.DataAnnotations(用于验证的引用) 并新建实体类. 1 using Syst