【小知识】为什么负数除二和右移一位的结果不一样?
问题描述:
为什么负数除二和右移一位的结果不一样?
这是在VS2013,C#中
这是在CB中
也有一些编译器,结果是一样的,但是为什么结果会是这样呢?
究其原因,还得看看汇编代码,在VS2013中提供了反汇编指令,结果如下
可以看到。
第一句:F = X / 2
00DF39F7 mov eax,dword ptr [ebp-58h] <span style="white-space:pre"> </span>;将X的值移到寄存器eax
00DF39FA mov ecx,2 <span style="white-space:pre"> </span>;将值2移到ecx
00DF39FF cdq <span style="white-space:pre"> </span>;将eax高位扩展到edx
00DF3A00 idiv eax,ecx <span style="white-space:pre"> </span>;做除法运算
00DF3A02 mov dword ptr [ebp-50h],eax<span style="white-space:pre"> </span>;移动到内存
(关于idiv指令详见二进制除法)
第二句:G = X >> 1
仅仅是做一个右移运算,所以如果最低位是1的话,就会被抹去。
总结:
除法运算,结果都向0取整;位运算结果向下取整
转载于:https://www.cnblogs.com/tinyjian/p/6550701.html
【小知识】为什么负数除二和右移一位的结果不一样?相关推荐
- 多暂估的库存如何调整_会计们看过来 暂估存货小知识
原标题:会计们看过来 暂估存货小知识 按照相应会计政策和制度规定,企业在作外购入库核算时,必须基于材料已经验收入库.材料货款已经结算,要有外购发票.外购入库单等相关单据票据. 现在很多企业在生产经营过 ...
- C语言你不得不知道的小知识
C语言你不得不知道的小知识: 1: 常见的变量修饰关键字:static.const.extern.volatile.register static:(该变量保存在全局静态区) a.修饰局部变量--& ...
- 小知识:皮尔逊相关系数分析
小知识 皮尔逊相关系数分析 用于考虑线性相关程度的统计量 在[-1,1]之间,绝对值越大,则越显著,负数表示负相关,正数表示正相关
- 【C#小知识】C#中一些易混淆概念总结(三)---------结构,GC,静态成员,静态类...
目录: [C#小知识]C#中一些易混淆概念总结 [C#小知识]C#中一些易混淆概念总结(二) ---------------------------------------分割线----------- ...
- 【C#小知识】C#中一些易混淆概念总结(七)---------解析抽象类,抽象方法
目录: [C#小知识]C#中一些易混淆概念总结--------数据类型存储位置,方法调用,out和ref参数的使用 [C#小知识]C#中一些易混淆概念总结(二)--------构造函数,this关键字 ...
- GO小知识之实例演示 json 如何转化为 map 和 struct
今天简单谈一些 JSON 数据处理的小知识.近期工作中,因为要把数据库数据实时更新到 elasticsearch,在实践过程中遇到了一些 JSON 数据处理的问题. 实时数据 实时数据获取是通过阿里开 ...
- 1 编码_TMS320F28379D之CLB解码多摩川编码器1——入手小知识(原创)
今天,跟大家分享一下28379D的CLB解码多摩川绝对值编码器的一些入手小知识. 首先,28379是属于TI的2837x系列,D是双核版本,S是单核版本,S和D都是带CLB模块的,都可以实现位置解码, ...
- sam格式的结构和意义_BAM/SAM文件格式的一些小知识
BAM/SAM文件的一些小知识 前言 如果不是在陈老师这读博,然后开始折腾BAM/SAM文件,我估计这辈子都不会了解到这么多东西吧 SAM/BAM简介 Sequence Alignment Map ( ...
- 安卓开发小知识 - 3
内容来源:Android Development Tidbits // No. 3 这是第三次分享安卓开发中的一些小知识点.我们很高兴有这么多人知道了这个有趣的系列,并且对你们通过评论和邮件表达的支持 ...
最新文章
- mingw编译boost_1_66_0
- MAT之GA:GA优化BP神经网络的初始权值、阈值,从而增强BP神经网络的鲁棒性
- 底部分页栏_2020年执业药师考试教材各科目增加页数!最多203页
- css响应式网格布局生成器_如何使用网格布局模块使用纯CSS创建响应表
- Linux下打印调试管理
- hdu java_HDU-java实现1176
- 苹果进行iPhone问世后最重大转型:硬件时代转互联网服务
- 亏损208亿,滴滴橙心优选裁员关停!曾融资12亿,最高估值320亿
- 开发人员的测试报告,要包含各平台
- lstm预测单词_从零开始理解单词嵌入| LSTM模型|
- 项目中发现 unity运行挂机放那大约半小时,运行项目变得越来越卡顿
- https spdy
- pm2部署node项目
- 矛与盾:黑客攻防命令大曝光
- Unity入门 简单的3D场景制作
- cadence SPB17.4 - allegro DRC - Physical - Maximum Neck Length
- java字符串与数值型相互转换
- 天融信虚拟企业防火墙学习
- apM Coin与Block72达成战略合作携手加速全球扩张
- MJ恋上数据结构(第1季 + 第2季)笔记