标签: shift

Perl移位操作简单的问题

以下两行perl的目的是什么?

my $host = shift || 'localhost';
my $port = shift || 200;
Run Code Online (Sandbox Code Playgroud)

那应该返回localhost和端口10.什么是shift关键字?

perl shift

5
推荐指数
2
解决办法
8513
查看次数

Shiftkey是否在JavaScript中保持不变

我编写了一个只允许输入数字的JS函数.该功能的副本如下:

function NumbersOnly(e) {
    var evt = e || window.event;
    if (evt) {
        var keyCode = evt.charCode || evt.keyCode;
        //Allow tab, backspace and numbers to be pressed, otherwise return false for everything.
        //(keyCode>=96 && keyCode<=105) are the numpad numbers        
        if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 96 && keyCode <= 105) || keyCode === 9 || keyCode === 8) {


        }
        else {

            evt.returnValue = false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

此功能适用于所有数字,但按住Shift键并按下其中一个数字键时,我的问题就出现了.返回的值是数字上方的字符之一.因此,例如,如果我按住shift并按7​​,则返回'&',但keyCode仍然是55!我本以为会有所不同.

所以我的问题是如何检查换档键是否被按下.我尝试过以下检查,但这不起作用:

    if (keyCode === 16) { …
Run Code Online (Sandbox Code Playgroud)

javascript keypress shift keydown

5
推荐指数
1
解决办法
7269
查看次数

任何人都可以解释为什么'>> 2'移位在C代码中意味着'除以4'?

我知道并理解结果.
例如7(十进制)= 00000111(二进制)
和7 >> 2 = 00000001(二进制)
00000001(二进制)与7/4 = 1相同
所以7 >> 2 = 7/4

但是我想知道如何这个逻辑被创造出来.
任何人都可以详细说明这个逻辑吗?
(也许它只是出现在一个天才头?)

还有其他类似的逻辑吗?

c shift divide

5
推荐指数
4
解决办法
3万
查看次数

theEvent charactersIgnoringModifiers - 获取没有修饰符的字符

我试图在我的游戏中实现具有两种模式的键盘类.游戏模式接受使用小写未修改键的输入(未修改意义,如果我用移位键入'0',它仍然返回'0'而不是')').我已经跟踪了它,只要使用类的charactersIgnoringModifiers方法,NSEvent但是这个方法排除了除shift键之外的所有修饰键.

cocoa shift keydown modifier-key

5
推荐指数
1
解决办法
515
查看次数

如何从c#中的按位右移中删除位

我有一个int号而且我必须将它向右移几次.

x   = 27 = 11011
x>>1= 13 = 1101
x>>2=  6 = 110
x>>3=  3 = 11
Run Code Online (Sandbox Code Playgroud)

我想获取已被删除的值位值.我必须得到:1,1,0

如何获取删除的值

c# bit-manipulation shift

5
推荐指数
2
解决办法
952
查看次数

C - 使用位移运算符进行基本转换

我正在尝试将一些数据从十六进制转换为C中的base64,我在网上找到了一个算法,但我真的想知道它是如何工作的,而不仅仅是实现它并将其解雇.如果有人可以解释以下是如何工作的,我将不胜感激.我一直在阅读有关班次操作员的内容,我似乎并没有像我想象的那样理解它们...它并不是很适合我.

for (x = 0; x < dataLength; x += 3) 
{
  /* these three 8-bit (ASCII) characters become one 24-bit number */
  n = data[x] << 16;

  if((x+1) < dataLength)
     n += data[x+1] << 8;

  if((x+2) < dataLength)
     n += data[x+2];

  /* this 24-bit number gets separated into four 6-bit numbers */
  n0 = (uint8_t)(n >> 18) & 63;
  n1 = (uint8_t)(n >> 12) & 63;
  n2 = (uint8_t)(n >> 6) & 63;
  n3 = (uint8_t)n & 63;
Run Code Online (Sandbox Code Playgroud)

这段代码来自Wikibooks,它不是我的,我只是想了解位移和它如何允许我转换数据. …

c bit-manipulation shift

5
推荐指数
1
解决办法
3703
查看次数

如何确定启动应用程序时是否按下了SHIFT或CTRL键

我需要能够确定在启动应用程序时是否按下了SHIFT或CTRL键

如何为Windows窗体应用程序执行此操作?

vb.net ctrl shift winforms vb.net-2010

5
推荐指数
2
解决办法
1万
查看次数

C++中的Bitshifting产生了错误的答案

我尝试运行以下代码:

char c = (2 << 7) >> 7
Run Code Online (Sandbox Code Playgroud)

应返回0,因为2具有此二进制表示形式为char:

0 0 0 0 0 0 1 0
Run Code Online (Sandbox Code Playgroud)

离开7班后,我们得到了

0 0 0 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)

然后,经过七班后,我们得到了

0 0 0 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)

但是,我得到的结果是2,而不是0.

编译器说它2 << 7是256,但它是a char,因此它不应该是256.

据我所知,2 << 7将被计算为intS和答案将投入c如此256 >> 7为2.

我试图将2转换为char(例如:),(char)2>>7但它也不起作用.

我正试图从中提取每一位char,所以我写了这段代码:

char c = 0x02;
for(int i=0;i<7;i++)
{
    char current = (c<<i)>>7;
}
Run Code Online (Sandbox Code Playgroud)

我怎么能得到每一个位?我的方式有什么问题?

c++ shift

5
推荐指数
1
解决办法
915
查看次数

Java:将String中的所有字符代码移动一个常量值

这有效:

for (char c : sourceString.toCharArray()) 
    destString += (char) (c + shiftValue);

System.out.println(destString);
Run Code Online (Sandbox Code Playgroud)

是否有更好/更快(优化)的方式?

java arrays string shift character-codes

5
推荐指数
2
解决办法
3661
查看次数

更改数组中的元素位置,并在其间移动元素

我想在数组中选择一个元素,将其移动到另一个索引,然后将"中间"元素"移位/旋转"1.

想象一下拖放功能,如果索引from小于索引to,那么我想转移到左边,然后转移到右边.

输入:

let data = [ 0, 1, 2, 3, 4, 5, 6 ]

任务1: insertAndShift(data, 0, 3): Take element at index 0, shift indexes 1, 2, 3 to the left, and then insert index 0 at 3

预期产出:

[ 1, 2, 3, 0, 4, 5, 6 ]

TASK2: insertAndShift(data, 3, 0) Take element at index 3, shift indexes 0, 1, 2 to the right and then insert index 3 at 0

预期产出:

[ 0, …

javascript arrays insert rotation shift

5
推荐指数
1
解决办法
5726
查看次数