问题标签 [byte-shifting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2886 浏览

c# - 帮助字节移位

我需要对文本文件进行字节移位。我对 perl 一无所知,但我在 perl 中找到了一段完美的代码,称为moz-byteshift.pl文档)。这正是我想做的,但我需要在 C# 中完成。

下面是 perl 文件的源代码:

如果有人至少可以解释 perl 脚本是如何工作的,那就太好了。C# 中等效的示例代码会更好。=)

谢谢您的帮助。

0 投票
6 回答
4890 浏览

c - 将 24 位 RGB 转换为 ARGB16

我必须读取 a24bpp Bitmap并将每个像素从 转换RGB24ARGB16

我使用了以下代码,

但我没有得到所需的输出。

任何帮助将不胜感激。

0 投票
3 回答
2301 浏览

java - 从 Java 中的 HEX 字符串创建 ISO-8859-1 字符串,移位位

我正在尝试将 HEX 序列转换为以 ISO-8859-1、UTF-8 或 UTF-16BE 编码的字符串。也就是说,我有一个看起来像这样的字符串:"0422043504410442"这代表字符:"Test"在 UTF-16BE 中。

我用来在两种格式之间转换的代码是:

这对我来说似乎很好,但我对此仍有两个问题:

  1. 有没有更简单的方法(最好没有位处理)来进行这种转换?
  2. 我该如何解释这条线:int value = (high << 4) | low;

我熟悉位处理的基础知识,但完全不熟悉 Java 语法。我相信第一部分将所有位向左移动 4 步。尽管其余的我不明白,为什么它在这种特定情况下会有所帮助。

对于我的问题中的任何混淆,我深表歉意,如果我应该澄清任何事情,请告诉我。谢谢你。//Abeansits

0 投票
3 回答
1479 浏览

java - 帮助目标 c - java字节移位

我在 Java 和 iPhone/objC 客户端之间发送数据。Java 客户端有一个已建立的中间件组件,我用它来测试新客户端与中间件的集成。

我对所有字节移位操作都有问题。Java 代码正在生产中,无法修改。由于双重似乎是最广泛的,我将发布它。

从 objC 发送:

Java 接收:

当我从 objC 发送 [[WVDouble alloc]initWithDouble:-13456.134]

java获得双倍5.53E-322

问题出在 objC 方面,因为 java 正在与其他开发环境一起生产。对于所有生产客户端,-13456.134 是转换后的结果。

这是 java 客户端使用的 sendDouble 代码:`

`

0 投票
2 回答
2587 浏览

string - 如何将字符串转换为在 Go 中使用给定字符集编译的字节数组?

在java中,我们可以使用String的方法:byte[] getBytes(Charset charset)。此方法使用给定的字符集将字符串编码为字节序列,并将结果存储到新的字节数组中。

但是如何在 GO 中做到这一点?Go中是否有类似的方法可以做到这一点?

请让我知道。

0 投票
4 回答
821 浏览

c - 在 C 中采用 long 值并以相反顺序返回其字节的函数

我正在做一个作业,要求我编写一个函数,该函数需要一个长值并在 C 中以相反的顺序返回其字节,给出了函数的原型,即

long swapLong(long x)

我的代码如下所示:

如果函数的输入是 0x1122334455667788

它应该返回 0x8877665544332211

但是,当我用

结果是 0x44332211

似乎该功能只交换前半部分哦输入,我不知道后半部分会发生什么

我编写了另一个名为“ int swapInt( int x) ”的函数,使用与 swapLong() 类似的想法并且效果很好....所以我不知道我对 swapLong() 做错了什么

0 投票
1 回答
111 浏览

c - 这段代码是关于什么的?

好的..我知道问这样的问题听起来很烦人,但我真的不明白下面的代码 [advance_reg(int*)]。在代码的注释中,它说“/寄存器根据原始多项式(64,4,3,1,0); /”,我只是没有得到它。有人请给我有关此代码的提示吗?例如,为什么它会这样定义 adv_64 数组?我理解第一个 for 块移动了 27 次,每次一位。但为什么?这背后的数学原理是什么?此外,为什么要执行第二个 for 块?这些都与多项式(64,4,3,1,0)有什么联系?

0 投票
1 回答
721 浏览

design-patterns - 位移重复模式

我正在寻找一种方法来改变这种模式:

6 24 96

所有这些数字都是 2 的倍数,所以我想有办法改变它们

我想改变它们,所以我得到了模式,但它可能会在循环中不断重复

6,24,96,6,24,96...

编程语言不重要,概念很重要

0 投票
4 回答
19121 浏览

c - 在 C 中移动数组的最佳方法?

我有一个包含值历史的数组,当添加一个新值时,我需要将所有以前的值向左移动一个位置,以释放最旧的值并为下一个值腾出空间。

通过使用 memmove,我可以想到两种方法:

或者通过交换指针:

两种方法之间是否存在性能差异,如果没有,建议使用哪一种?

0 投票
1 回答
5319 浏览

assembly - 在汇编中不使用 DIV 进行除法

如何在不使用 DIV 指令但使用 shift 和 add 方法的情况下在 Assembly 中划分两个数字?

我用乘法做到了,这是我的代码:

第二个问题:我的老师告诉我们,有一个指令叫做 MOVZE 来做我在第 4 行和第 5 行所做的事情,但它不起作用?我使用emu8086模拟器。