计算机中负数的表示方法(例子取自coursera)

今天做coursera测试题的时候,一开始听课不是很清楚,做题的时候还错了一次,第二次总算答对了,好了,先把结果贴出来:

这边打印一个右移2位后的负数,负数在计算机里面是用补码的形式表示,+12由于是整型数据,所以表示为00000000 00000000 00000000 00001100(原码)

-12先要对+12的原码取反:11111111 11111111 11111111 11110011(反码)再对反码+1(0001)

11111111 11111111 11111111 11110100 同时二进制位高位是符号位,所以0100变成1100

最终得到-12的二进制数11111111 11111111 11111111 11111100

用16位进制打印出来就是fffffffd

时间: 2024-10-19 09:19:44

计算机中负数的表示方法(例子取自coursera)的相关文章

计算机中负数表示法

问一个基本的问题. 负数在计算机中如何表示? 举例来说,+8在计算机中表示为二进制的1000,那么-8怎么表示呢? 很容易想到,可以将一个二进制位(bit)专门规定为符号位,它等于0时就表示正数,等于1时就表示负数.比如,在8位机中,规定每个字节的最高位为符号位.那么,+8就是00001000,而-8则是10001000. 但是,随便找一本<计算机原理>,都会告诉你,实际上,计算机内部采用2的补码(Two'sComplement)表示负数. 什么是2的补码? 它是一种数值的转换方法,要分二步完

原码、反码、补码,计算机中负数的表示

原码:将一个整数,转换成二进制,就是其原码.                如单字节的5的原码为:0000 0101:-5的原码为1000 0101. 反码:正数的反码就是其原码:负数的反码是将原码中,除符号位以外,每一位取反.                如单字节的5的反码为:0000 0101:-5的反码为1111 1010. 补码:正数的补码就是其原码:负数的反码+1就是补码.                如单字节的5的补码为:0000 0101:-5的原码为1111 1011. 在计

zhlan--Python中的字典遍历方法 &amp; 字典取值

一.Python中的字典遍历方法: info = { 'name':'xiaoming', 'sex':'nan', 'age':20, 'id':1} info2 = { 'name':'hhh', 'sex':'nv', 'addr':'beijign'} 第一种方法: # 直接循环字典,循环的是字典的key,如果想循环的时候同时获取到key和value,那么就要用 .items()方法for k,v in info.items(): print('%s is %s'%(k,v)) 运行结果

计算机中负数的表示法 Twos complement: Negative numbers in binary

Twos complement: Negative numbers in binary 二进制的负数表示法 负数的表示法: 我们将第一位定义为符号位 ,1代表负数 0代表正数 计算5+(-5) 结果是2 it doesn’t work, 下面我们来介绍 one’s complement 在one’s complement中进行相加: 结果都差了个1, two’s complement (将 -0 去掉了) 相加的结果也是正确的 two’s complement中,位对应的值也是make sens

在启动php时,无法启动此程序,由于计算机中丢失MSVCR110.dll的解决方法

在启动php时,运行RunHiddenconsole.exe php-cgi.exe -b 127.0.0.1:9000 -c时,出现错误:无法启动此程序,由于计算机中丢失MSVCR110.dll 方法/步骤 首先进入 http://www.microsoft.com/zh-CN/download/details.aspx? id=30679 这个网址来进行相关程序的下载. 打开之后,在"选择语言"里选择"中文简体".然后点击右边的"下载"but

在启动php时,无法启动此程序,因为计算机中丢失MSVCR110.dll的解决方法

在启动php时,执行RunHiddenconsole.exe php-cgi.exe -b 127.0.0.1:9000 -c时,出现错误:无法启动此程序,因为计算机中丢失MSVCR110.dll 方法/步骤 首先进入 http://www.microsoft.com/zh-CN/download/details.aspx?id=30679 这个网址来进行相关程序的下载. 打开之后,在"选择语言"里选择"简体中文",然后点击右边的"下载"按钮.这

负数在计算机中的表示方法

假设有一个int类型的数,值为5,在计算机中的表示为:(int型的数占4个字节,32位)所以前面会有一堆0 00000000 00000000 00000000 00000101 现在想知道-5在计算机中怎么表示? 在计算机中,负数以其绝对值的补码形式表达. 需要先获得其绝对值的原码,再得反码,再得补码. 首先理解几个概念:原码.反码.补码 原码:一个整数,按照绝对值大小转换成的二进制数,称为原码. 如:00000000 00000000 00000000 00000101 是5的原码. 反码:

关于JAVA中Byte类型的取值范围的推论(*零为正数,-128在计算机中的表示方法...)

先看一段推理<*一切都是在8个比特位的前提下,讨论二进制的符号位,溢出等等,才有意义*> +124:0111 1100 -124:1000 0100 +125:0111 1101 -125:1000 0011 +126:0111 1110 -126:1000 0010 +127:0111 1111 -127:1000 0001 +128:0 1000 0000   -128:1000 0000 从上述过程对比可以看出:+128是在127的基础上加1得到,但是会造成溢出(JAVA中byte的大小

负数在计算机中的表示 Byte-128

http://blog.csdn.net/njuitjf/article/details/4585247 今天,老大让我调查一个浮点数转换为整数的问题.自己就查了些资料,顺便复习一下原码.反码和补码. 原码:将一个整数,转换成二进制,就是其原码.如单字节的5的原码为:0000 0101:-5的原码为1000 0101. 反码:正数的反码就是其原码:负数的反码是将原码中,除符号位以外,每一位取反.如单字节的5的反码为:0000 0101:-5的原码为1111 1010. 补码:正数的补码就是其原码