x:=x shl 1 二进制数向左移1位,尾部补1个零,相当于x:=x*2;x:=x shl 2 二进制数向左移2位,尾部补2个零,相当于x:=x*4;...x:=x shl n 二进制数向左移n位,尾部补n个零,相当于x:=x*2^n;x:=x shr 1 二进制数向右移1位,首部补1个零,相当于...
分类:
其他好文 时间:
2014-07-09 21:21:24
阅读次数:
152
1 #include 2 #include 3 using namespace std; 4 int main(){ 5 string s; 6 int n; 7 getline(cin,s); 8 cin>>n; 9 while(n--)10 ...
分类:
其他好文 时间:
2014-07-07 12:44:52
阅读次数:
170
题目:输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。假设该整数为i。首先i和1做与运算,判断i的最低位是不是为1。接着把1左移一位得到2,再和i做与运算,就能判断i的次高位是不是1……这样反复左移,每次都能判断i的其中一位是不是1。基...
分类:
其他好文 时间:
2014-07-06 22:34:37
阅读次数:
282
Divide two integers without using multiplication, division and mod operator.思路:不能使用乘法除法以及取模运算来计算两个数相除。主要做法就是,将因子不断乘2(向左移位即可实现),同时结果从1不断移位加倍,等到除数大于被除数一...
分类:
其他好文 时间:
2014-07-06 15:34:24
阅读次数:
197
开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。
输入:
合法坐标为A(或者D或者W或者S) + 数字(两位以内)
坐标之间以;分隔。
非法坐标点需要进行丢弃。如AA10; A1A; $%$; YAD; 等。
下面是一个简单的例子 如:
A10;S...
分类:
移动开发 时间:
2014-07-06 08:48:26
阅读次数:
260
最近有个朋友在程序中使用了对16进制数做负数移位(编译器是gcc),本人最次产生好奇,所以研究了一些。
对一个数做负数位移位的操作是不规范的,但是是可行的。
具体例子:
char tmp = 0x10;
tmp = tmp
大家猜猜结果是什么,有人猜是tmp左移-1位不就是右移1位吗?结果是0x01?
很遗憾,电脑和人脑是不一样的。结果是0
为什么呢?为了找出原因,本人进行...
分类:
编程语言 时间:
2014-07-03 13:45:44
阅读次数:
259
如,abcde左移3位为deabc要求时间复杂度O(n),空间复杂度O(1),每一个字符只能遍历一次摘自http://blog.csdn.net/geniusluzh/article/details/8460031利用数学解决该问题 其实对于这道题,最初一看的想法就是将当前位依次替换左移m位对应的....
分类:
其他好文 时间:
2014-07-02 21:26:41
阅读次数:
352
先要了解一下C语言里全部的位运算都是指二进制数的位运算。即使输入的是十进制的数,在内存中也是存储为二进制形式。 “=0。 功能:将整型数a按二进制位向左移动m位,高位移出后,低位补0。 “>>”使用方法: 格式是:a>>m,a和m必须是整型表达式,要求m>=0。 功能:将整型数a按二进制位向右移动m...
分类:
编程语言 时间:
2014-06-27 20:54:59
阅读次数:
188
public class txs {
static void leftbit(){
int i; //整型长度为32位 //位
int num=0xFFFFFFE; //11...
分类:
编程语言 时间:
2014-06-22 22:12:13
阅读次数:
287
高级运算符
位运算符
按位取反: ~
按位与运算: &
按位或运算: |
按位异或运算: ^
按位左移运算:
按位右移动算: >>
溢出运算符
自从swift里面提供了所谓的类型安全之后,我们就不能再用一个 Int.max 进行+1操作了,这样会导致报错。所以swift又提供了一个让我们在知道这会溢出的前提下,继续+1的溢出运算符,这听上去也不错。...
分类:
其他好文 时间:
2014-06-22 18:00:23
阅读次数:
283