不要在纠结负数的表示了

 计算机数背景

  为了解决原码做减法的问题, 出现了反码,但是又出现了 ‘-0’的问题。

  eg:1 - 1 = 1 + (-1) = [0000 0001] + [1000 0001]= [0000 0001] + [1111 1110] = [1111 1111] = [1000 0000]= -0

  因为补码的出现解决了-0的问题,而且多出来的1000 0000可以用来表示 -128。 很nice。

  真值:-128

  机器码(补码):1000 0000(1Byte)

  我们都知道负数在计算机中都是用补码存储的!如果计算真值(当然符号位是1也就是负数的真值)一般流程都是:符号位不管,然后其他位按位取反(求反码) + 1(得真值)。

那么机器码计算出来的也是 -128(补) = 1000 0000 = 1111 1111(反) + 1 = 0000 0000(原) = 0(真值)! 错!因为-128是用的-0的补码(1000 0000)来固定表示的,所以不能用这个方法来计算其补码和原码(-128就没有补码和源码,这句话是说的!)

  注意判断符号位 前面都是1。

时间: 2024-11-01 10:37:02

不要在纠结负数的表示了的相关文章

移除数组中第一个负数后的所有负数

scala> val a = ArrayBuffer[Int](1, 2,3, 5, -1, 2, -3, -5) a: scala.collection.mutable.ArrayBuffer[Int]= ArrayBuffer(1, 2, 3, 5, -1, 2, -3 , -5)   scala> :paste // Entering paste mode (ctrl-D tofinish)   var foundFirstNegative = false val keepIndexes

关于负数的isdigit()判断

-->the start 今天写作业的时候突然想到,一直使用isdigit()方法来处理用户的输入选择是不是数字,但是如果用户输入的是负数呢,会不会导致bug? 然后我就试了一下,居然不报错...然后我就纳闷了,赶紧试了一下: '-10'.isdigit()返回False是因为'-'不是一个digit. 然后我就想怎么才能判断负数为数字呢,下面是从网上找到的答案,在这里记录下来. 1 num = '-10' 2 if (num.startswith('-') and num[1:] or num

新写了一个控制器,结果粗心导致出现了一个问题纠结了半天

新写了一个控制器,结果粗心导致出现了一个问题纠结了半天     误信息如下: 经过逐步排查发现时因为我的方法中用了一个Model ,却把Model的包引入错误所以造成上面的问题: 错误引入的包为:import com.sun.tools.xjc.model.Model; 正确的包为: import org.springframework.ui.Model;

shell if判断(曾经被一个字符串相等的判断纠结半小时,最后只是if后少了个空格!) 和 awk引用外部变量判断

一.if判断 数字: $A=12 $B=15 if(("$A"<"$B")) if(("$A"=="$B")) 字符串: $A="HELLO" $B="WORLD" if [ "$A" = "FACT_LOGIN_USER" ] if [ "$A" = "$B" ] PS:字符串比较的时候注意 'if'

选课不再纠结!10个课程搞定Java!

身在茫茫的课程海洋的童鞋们,是不是很迷茫?数百个课程我该学哪个?这个课程质量怎样啊?学院课程小管家整理出了最受欢迎的10个Java类视频课程~迷途中的童鞋们终于不再纠结了!!!10各课程包含了初中高3各阶段,小管家是不是很贴心^_^ 大家有想要的专题欢迎在评论中说明哟,管家会根据需求的情况,进行下一个专题的选择~~~~ (一)  小白进阶必学~ 1.http://edu.51cto.com/course/course_id-4191.html 刘英杰 课程名称:JavaWeb(JSP+servl

Java语法基础---进制---负数二进制

八进制:用0开头表示. 十六进制:用0x开头表示. 负数的二进制表现形式    对应的正数二进制,取反加1,负数二进制最高位为1,正数二进制最高位为0

买显示器的各种纠结

第一个纠结:买TN屏还是IPS屏? 就我个人来说,对TN屏情有独钟,但看看评论曰IPS对TN各种吊打...搞的我下了技嘉GTX970Gaming1和山业DP线的订单,把三星4k TN屏的订单撤销了.事儿还没完,准备下Dell U2515H或P2415Q的订单的时候,又听说这块面板是6bit抖成8bit的,还有无漏光不戴尔的雅号.明天显卡和DP线就要来了,主角丢了. 资料显示,TN屏都是6位的,但现在也没有8位面板的消息,倒是说京东方的10.5代生产线上的是8k面板,所以像我这样的普通用户--既非

万恶的KPI、新兴的OKR及让人纠结的程序员考核

最近两天在研究研发部门如何进行绩效管理(其实一直都在思考,关注,实践,总感觉无从下手,也想求助咨询公司,无奈囊中羞涩).查了两天的资料,主要的方向是KPI,OKR,谷歌等互联网公司的考核方法.这里做个简单的整理与总结,记录一些自己思考的结论. 1.KPI万恶论 说KPI毁了索尼都是扯淡,很多大公司如BAT都在用KPI,发展有目共睹,虽然网上曝出各种弊端,但是没有KPI可能更差.企业的生老病死也是自然规律,更多是由外部的大趋势决定的,每次企业大规模的死亡与淘汰都是整个时代在飞速发展而进行正常的新陈

SVN在使用过程中比较纠结的问题记录

对于代码版本管理工具,作为程序员,或多或少,都遇到一些奇葩的问题,我把自己曾经对于SVN遇到的问题做一个记录,废话不多说,直接上正文. 1.在Eclipse中使用远程导入工程时,提示:文件夹””已不存在. 特别说明下,这种错误在连接本地的svn情况可能不会出现,但是如果当你连接到远程服务器的svn这种情况可能就会出现,当初的时候我也是在代码提交本地SVN未出现报错,但是一提交服务器的SVN就会报错,搞得我纠结了好久. 2.Eclipse中添加新的资源位置报错,svn: Number is lar