负数如何转换成二进制
1个字节它不管怎么样还是只能表示256个数,因为有符号所以我们就把它表示成范围:-128-127。它在计算机中是怎么储存的呢?
可以这样理解,用最高位表示符号位,如果是0表示正数,如果是1表示负数,
剩下的7位用来储存数的绝对值的话,能表示27个数的绝对值,再考虑正负两种情况,
27*2还是256个数。首先定义0在计算机中储存为00000000,对于正数我们依然可以像无符号数那样换算,
从00000001到01111111依次表示1到127。那么这些数对应的二进制码就是这些数的原码。
到这里很多人就会想,那负数是不是从10000001到11111111依次表示-1到-127,那你发现没有,
如果这样的话那么一共就只有255个数了,因为10000000的情况没有考虑在内。
实际上,10000000在计算机中表示最小的负整数,就是这里的-128,而且实际上并
不是从10000001到11111111依次表示-1到-127,而是刚好相反的,从10000001到11111111依次
表示-127到-1。负整数在计算机中是以补码形式储存的,补码是怎么样表示的呢,
这里还要引入另一个概念——反码,所谓反码就是把负数的原码(负数的原码和和它的绝对值所对应的
原码相同,简单的说就是绝对值相同的数原码相同)各个位按位取反,是1就换成0,是0就换成1,
如-1的原码是00000001,和1的原码相同,那么-1的反码就是11111110,而补码就是在反码的基础上加1
,即-1的补码是11111110+1=11111111,因此我们可以算出-1在计算机中是按11111111储存的。
总结一下,计算机储存有符号的整数时,是用该整数的补码进行储存的,0的原码、补码都是0,
正数的原码、补码可以特殊理解为相同,负数的补码是它的反码加1。
下面再多举几个例子,来帮助大家理解!
十进制 → 二进制 (怎么算?要是不知道看计算机基础的书去)
47 → 101111
有符号的整数 原码 反码 补码
47 00101111 00101111 00101111(正数补码和原码、反码相同,不能从字面理解)
-47 10101111 11010000 11010001(负数补码是在反码上加1)
现在知道了吧?
6的原码是00000110
6的反码是11111001
反码+1以后表示负数
11111010
这就是-6
负数如何转换成二进制相关推荐
- c语言实现补码(负数)转换成原码
1.基础知识 (1)负数在计算机中是以补码的形式存储的: (2)有符号数的最高位为1表示为负数,为0表示正数: (3)反码:等于原码除过符号位,其余位取反: (4)补码:等于反码加1. 2.以-62为 ...
- C语言十进制转换成二进制源码
把开发过程比较重要的一些内容备份一次,下边资料是关于C语言十进制转换成二进制的内容,应该对各位朋友有一些用. #include int main() { int num; std::cout < ...
- 十进制转换成二进制列表
a = [[1, 2, 3, 4, 5, 6]] 转换后: z = [[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],[ 0., 0., 0., 0., 0., 0 ...
- 十进制转二进制转换c语言程序,c语言编程如何实现-十进制数转换成二进制和 – 手机爱问...
2006-10-10 (1).将十进制正整数转换成k进制(2<=k<=9)的数字输出.例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示1000). (2).请编写函数vo ...
- 100转换成二进制 java,一段简单的java代码,十进制转二进制
一段简单的java代码,十进制转二进制 mip版 关注:188 答案:5 悬赏:40 解决时间 2021-01-23 23:14 已解决 2021-01-23 05:43 代码如下,希望可以帮我 ...
- C#将image中的显示的图片转换成二进制
原文:C#将image中的显示的图片转换成二进制 1.将Image图像文件存入到数据库中 我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才 ...
- vue 文件转换二进制_vue项目将file转换成二进制流
前端在新增数据时,需要将附件和表单数据一起上传,此时需要将文件转换成二进制流传给后端.记录将文件转换成二进制流 ref="uploadProduct" class="up ...
- php 图片单位转换,php如何把图片转换成二进制字符串
php把图片转换成二进制字符串的方法:首先通过"$_FILES['file']['tmp_name'];"方法获取临时文件名:然后通过base64EncodeImage函数将图片文 ...
- c语言 整数转二进制取位,C语言位运算--将整数转换成二进制串以及反转整数后N位...
// c primer plus上的内容,位运算 #include char * itobs (int n,char * ps); void show_bstr(const char *); int ...
最新文章
- +load +initialize
- 网络安全等级保护测评高风险判定指引_等保知识|测评高风险项详解:安全管理中心...
- 网络工程师面试PK--胜者为王
- Spring Session使用
- 威学一百_精彩回顾深圳威学一百低龄校区圣诞活动精彩回顾!
- 统计之都 http://cos.name/
- mysql 主键 最佳实践_Spring Data Jpa + MySQL IDENTITY 主键下批量插入最佳实践
- 熵的基础知识,特征工程,特征归一化,交叉验证,grid search,模型存储与加载
- git 代码回滚_git代码版本管理(1)——git版本回滚
- 图灵奖公布!计算机图形学先驱 Hanrahan 和 Catmull 获奖,祝贺两位好莱坞 3D 动画大片技术元老...
- 用MDT 2012为企业部署windows 7(四)--创建Deploymentshare共享以及介绍一些选项的具体作用...
- java8 streamlist转化
- 【POJ2018】Best Cow Fences
- h5 游戏 游戏框架 Phaser
- plc控制电机实验报告_PLC控制步进电机实验报告
- 【JVM】深入理解JVM垃圾回收机制及其垃圾回收算法
- 动态指针时钟:利用pyqt5制作指针钟表显示实时时间
- STM32F7--->SDRAM
- Matlab画的玫瑰花
- Windows提权流程及手法