标签: shift

反转寄存器 Thumb-2 中的位

所以我的问题是一个我虽然相当简单并且我有一种算法的问题,但我似乎无法使用thumb-2指令使其工作。

安利,我需要反转 r0 的位,我认为最简单的方法是将数字逻辑右移到临时寄存器中,然后将其左移到结果寄存器中。然而,LSL、LSR 似乎不允许您存储丢失到最高有效位或最低有效位的移位位(同时还移位该寄存器的位)。我是否理解了指令的某些部分?

这是我的 ARM 参考: http://infocenter.arm.com/help/index.jsp ?topic=/com.arm.doc.dui0204j/Cjacbgca.html

arm bit-manipulation shift thumb

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

Perl中@_数组使用移位函数的问题

希望在shift函数@_内部的数组上使用该函数,以便该函数可以接受可变数量的参数。根据 L Wall 等人在“Programming Perl”中的 p112,传递给子例程的参数被连接成一个平面数组,即@_。假设可以使用shift函数或foreach循环遍历此数组以确定传递的所有值中的最小值,即使某些参数本身就是数组并且这些值作为元素包含在这些数组中。

尝试了许多变体,并且 min2 和 min4 变体使用“for each”循环(最接近“Programming Perl”的 p113 上的循环)来遍历 @_ 数组。使用“shift”函数遍历@_ 数组的 min1 和 min3 变体确实正常工作。关于是什么导致基于“shift”功能的变体失败的任何想法?

下面给出了四个“min”子程序:

# Using perl5.14.2.exe 

use strict;

sub min {
    my $m=shift @_;
    my $b;
    while ($b = shift @_){
      if ($b < $m) {$m=$b};
    };
    return $m;
};


sub min_v2 {
    my $m = $_[0];
    foreach (@_){
      if ($_ < $m) {$m = $_};
    };
    return $m;
};


sub min_v3 …
Run Code Online (Sandbox Code Playgroud)

arrays perl foreach for-loop shift

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

groupby pandas数据框中连续相同的值和出现次数的累积计数

我有一个问题,我想计算滚动周期内数据帧中当前值未更改的次数。

例如:

df = pd.DataFrame({'col':list('aaaabbab')})
Run Code Online (Sandbox Code Playgroud)

会以某种方式给出输出

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

我一直在尝试以下一些事情

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

我添加了滚动,因为我想根据滚动周期查看完整的数据集,但即使没有滚动周期,我也无法完全弄清楚逻辑。

我不确定我是否遗漏了一些简单的东西,或者使用 Shift 可能无法实现这一点

shift python-3.x pandas

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

将数据框列移动到最后一列

我想将数据框中的列移动到最后一列,我尝试使用shift. 但这并没有改变立场。

import pandas a pd
df = #input dataframe
df['x'] = df['x'].shift(axis=1)
Run Code Online (Sandbox Code Playgroud)
Error:
    raise ValueError(f"No axis named {axis} for object type {cls.__name__}")
ValueError: No axis named 1 for object type Series
Run Code Online (Sandbox Code Playgroud)

还有其他选择吗?有人可以建议吗?

shift dataframe python-3.x pandas

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

无法修复Bison语法中的转换/减少冲突

我有以下Bison语法:

%error-verbose
%{
#include "node.h"
NBlock *programBlock;

#define YYDEBUG 1

extern int yylex();
void yyerror(const char *s) { printf("Error: %s\n", s); }
%}

%union {
    Node *node;
    NBlock *block;
    NBody *body;
    NHeader *header;
    NExpression *expression;
    NStatement *statement;
    NIdentifier *identifier;
    NVariableDeclaration *variableDeclaration;
    NDoWhileStatement *doWhileStatement;
    NWhileStatement *whileStatement;
    NIfStatement *ifStatement;
    NForStatement *forStatement;
    std::vector<NVariableDeclaration*> *variableDeclarations;
    std::vector<NExpression*> *expressions;
    std::vector<NStatement*> *statements;
    std:string *string;
    int token;
}

/*
The %token directive is used to associate a type to a terminal symbol.
%token <type> 'terminal_list'
associates the specific …
Run Code Online (Sandbox Code Playgroud)

c reduce grammar bison shift

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

Galois LFSR代码解释

我试图理解galois LFSR代码是如何工作的.在维基百科页面上有一个带有示例的图.有一个C片段代码.

#include <stdint.h>
uint16_t lfsr = 0xACE1u;
unsigned period = 0;

do {
unsigned lsb = lfsr & 1;  /* Get lsb (i.e., the output bit). */
lfsr >>= 1;               /* Shift register */
if (lsb == 1)             /* Only apply toggle mask if output bit is 1. */
lfsr ^= 0xB400u;        /* Apply toggle mask, value has 1 at bits corresponding
                         * to taps, 0 elsewhere. */
++period;
} while(lfsr != 0xACE1u);
Run Code Online (Sandbox Code Playgroud)

我无法理解维基百科上给出的数字并与代码相关联.切换面具在做什么?任何人都可以解释操作如何使用示例位序列和它的移位版本.我不了解字段,也不了解代码.我在网上查了但是没有进入字段术语就找不到算法的任何好的解释.请帮助.

c math shift galois-field

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

如何设置特定位?

假设我有一个uint16_t变量,我必须设置特定的位.

例:

uint16_t field = 0;

这意味着这些位都是零: 0000 0000 0000 0000

现在我得到了一些我需要在特定位置设置的值.

val1=1; val2=2, val3=0, val4=4, val5=0;

如何设置位的结构如下

0|000|  0000| 0000 000|0
Run Code Online (Sandbox Code Playgroud)

val1应该设置在左边的第一位.所以它只有一个或零.

val2应该设置在接下来的三位.val3在接下来的四位上.val4在接下来的七位和val5一位最后一位.

结果是这样的: 1010 0000 0000 1000

我只发现了一个特定的位而不是"组".(移位或bitset)

有谁知道如何解决这个问题?

c++ shift bit bitset

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

R:绘图中的垂直x标签

我有一个情节,我已经介绍了垂直x轴标签las = 2.那些标签是文字.分类词.这些词太长了,它们的范围很远.我的情节中没有主要标题(不需要),因此图像顶部有足够的空间.但是我该如何改变一切呢?我找到了名为mai和的参数代码mar.但他们没有改变任何事情.

我试图通过将第三个值mar("top")设置为0 来使用mar.所以我想在顶部有0个边距.情节保持原样:/

这是我的代码(x标签的德语单词):

categories <- c("Introvertiert", "Selbstbewusst", "Kooperativ", "Ehrgeizig", 
"Einfühlsam", "Autoritär", "Temperamentvoll", "Flexibel", "Tolerant", "Teamfähig", 
"Zielorientiert", "Überheblich", "Vielseitig", "Ungeduldig", "Zuverlässig", "Eigensinnig",
 "Anpassungsfähig", "Souverän", "Selbstkritisch", "Entscheidungsfreudig", "Intelligent", 
"Kontaktfreudig", "Kreativ", "Stressresistent", "Hilfsbereit", "Emotional", 
"Kompromissbereit", "Gesellig", "Standhaft", "Pünktlich", "Unruhig", "Tatkräftig",
 "Aufgeschlossen", "Fröhlich", "Zuvorkommend", "Uneigennützig", "Selbstbeherrscht", 
"Schüchtern", "Freundlich", "Sprachgewandt")

x <- seq(1,40)
y <- seq(1,40)

plot(x,y,xaxt="n",main="", mar=c(5, 4, 0, 2) + 0.1, xlab ="")

axis(1, at=1:40, labels=categories, las = 2, cex.axis = 0.8)
Run Code Online (Sandbox Code Playgroud)

plot r shift

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

将一个字节转换为8个布尔值

我想知道我怎样才能获得一个8位变量,并将其分解为8个布尔值,用于'for'循环.例如:

void byteWrite(byte byteIn)
{
  for(int i=0; i<8; i++)
  {
    PORTA |= 128; // STHP ON
    if(?)
      PORTB |= 4; //STCP ON
    else
      PORTB &=11;// STCP OFF
    _delay_ms(1);
    PORTA &= 63; // STHP OFF
    _delay_ms(1);
  }
  PORTB |= 2; // DS ON
  _delay_ms(1);
  PORTB &= 1; // DS OFF
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

c byte boolean shift bit

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

有人可以解释我在C中右移的行为吗?

我不明白以下代码的结果:

unsigned char p = 170;
p = (~p) >> 4 & 255;
Run Code Online (Sandbox Code Playgroud)

结果是:245我不明白为什么.

首先,(~p)将应用10101010到01010101的原因

这是一个正数,因此>> 4将导致00000101在我的理解中.

但它似乎是11110101,我不明白为什么.根据我的理解,将正数向右移动将插入0而不是1.

c shift

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

标签 统计

shift ×10

c ×4

bit ×2

pandas ×2

python-3.x ×2

arm ×1

arrays ×1

bison ×1

bit-manipulation ×1

bitset ×1

boolean ×1

byte ×1

c++ ×1

dataframe ×1

for-loop ×1

foreach ×1

galois-field ×1

grammar ×1

math ×1

perl ×1

plot ×1

r ×1

reduce ×1

thumb ×1