位移操作的一个坑

原创 2013年12月05日 15:37:10

今天被坑1个多小时了,简单记录下,位移的一些坑:

1、首先负数的位移,符号位(最高位)的表现根据具体编译器和机器的不同而有不同表现,使用负数位移时应该重视,建议还是无符号数位移。

2、今天被坑的:当位移的位数大于(大于等于)数字的位数时,位移实际位数可能会进行求模运算。例如对一个32位的无符号数位移32位,实际的

位移可能是32%32=0,既没有发生位移,今天就被坑了。。。。。因此位移如果会大于最高位,还是判断下吧,自己搞0得了。。。


Java中的位移操作 >>、<<

【需求背景】项目需要自定义网络协议,将Beans封装成数据报并发送。为保证数据报头部的长度严格一致,需要将java中的byte、short、int等基本数据类型,通过移位操作来拼装成定长的数据报头部。...
  • sadword
  • sadword
  • 2015年10月08日 10:31
  • 1145

double类型数据 位移操作

由于位操作的对象是整型变量,所以你必须利用某种转换让编译器把浮点变量暂时当成整型变量。不过,直接强制转换是不行的: float   f   =   12.34; int   i   =   (int)...
  • Ididcan
  • Ididcan
  • 2011年06月12日 20:24
  • 3043

iOS-位移枚举

枚举&位移枚举 之前,我们一般都采用C语言的方式定义枚举,这种枚举可以称为普通的枚举。 typedef enum{ DirectionTypeUp, DirectionTypeLef...
  • u014205965
  • u014205965
  • 2015年05月22日 10:09
  • 1679

java位移操作

.在了解位移之前,先了解一下正数和负数的二进制表示形式以及关系:举例15和-15:15的原码: 00000000 00000000 00000000 00001111     补码: 11111111...
  • apex0
  • apex0
  • 2010年07月24日 01:46
  • 4229

shell 中 shift 位移

 #用shift操作来计算输入的各项之和#!/bin/shif [ $# -eq 0 ]thenecho "usage: sh sum.sh 1 2 3 4 5 "exitfisum=0until [...
  • thmono
  • thmono
  • 2009年10月13日 22:22
  • 660

Java中的移位操作——Java编程思想笔记

Java中的移位操作及移位进行乘除法的简单分析
  • alading2009
  • alading2009
  • 2014年10月10日 20:05
  • 1494

(翻译整理)如何简单、高效地使用位操作解决问题

一、引言这是我翻译自 A summary: how to use bit manipulation to solve problems ealily and efficiently 的译文。这篇笔记整...
  • u012814856
  • u012814856
  • 2017年04月28日 17:45
  • 625

c++位移计算

int main() { int a = 3; int b = a
  • china_zyl
  • china_zyl
  • 2015年05月30日 00:14
  • 1120

iOS 定义具有位移操作的枚举的意义

经常看到系统内使用位移操作的枚举定义,一直不是很清楚其用意。今天在看SDWebImage源码的时候,在纸上稍微计算了一下,才明白其中用意。 定义枚举类型的关键字有以下几种:enum, NS_...
  • il0vech
  • il0vech
  • 2016年02月01日 13:47
  • 1486

逻辑位移与算数位移的区别

比如一个有符号位的8位二进制数11001101,逻辑右移就不管符号位,如果移一位就变成01100110。算术右移要管符号位,右移一位变成10100110。 逻辑左移=算数左移,右边统一添0 逻辑右移,...
  • sinat_32547403
  • sinat_32547403
  • 2016年10月22日 21:00
  • 2075
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:位移操作的一个坑
举报原因:
原因补充:

(最多只允许输入30个字)