问题标签 [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 投票
2 回答
1467 浏览

swift - 为创建 WAV 文件而生成的错误字节

我的应用程序需要生成一个音频文件,并且我正在按照我的上一个 Android 版本编写文件生成器。在 Android 上,它使用OKIO来处理 IO,而在 iOS 上,它使用本机 NSData。

每个 WAV 文件都需要一个标头来通知数据读取器(媒体播放器)的一些参数。

它使用这个文件生成器,按照互联网上提供的一些规范写入字节。

它使用这种方法将 Int 写入缓冲区:

在 Android 上,文件正在生成,没有任何问题。但在 iOS 上,这两个参数是错误的。看(大多数顶部文件是在 Android 代码上生成的,底部是由 iOS 代码生成的):

在此处输入图像描述

斯威夫特 3

我真的不知道发生了什么,你能帮帮我吗?

0 投票
1 回答
114 浏览

java - Java字节数组(长值)在c ++中转换为long

我在我的 Java 代码中将一个长值放入一个字节数组中。这个(字节数组)将被传输到本机端代码(C++)。在这个 C++ 代码中,我必须重构从 Java 发送的长值。

如何访问字节数组及其中的所有字节并取回长值?请帮忙。

0 投票
1 回答
376 浏览

c - C:将整个文件读入缓冲区并字节交换 buf | ADDECEFA -> 死脸

编辑:在做了更多研究之后,似乎我真正需要的是大端到中端,反之亦然。所以 12345678 -> 34127856 并返回。很抱歉有任何混淆。

我有一个小文件,正好 16MB。我正在将整个文件读入缓冲区。如果可能的话,我试图做的是一次性对整个文件/缓冲区进行字节交换(例如,统一/全局交换 ADDECEFA => DEADFACE)。我已经阅读了无数页的字节交换,但是由于某种原因,很多按位/字节交换的东西都在我头上(很可能是愚蠢的大脑)。如果有人知道傻瓜的按位/字节交换,请指出我正确的方向!

另外,如果你看到我在我的代码中做错了什么,请告诉我并告诉我一个更好的方法。如果您需要我详细说明任何事情,请不要犹豫。谢谢,祝你好运。

编辑:我添加了我失败的尝试之一。我的最终目标是在将字节写回 outfile 时交换字节并尽可能有效地交换它们。

0 投票
1 回答
32 浏览

bit-manipulation - 位操作溢出

给定以下公式:

而且每个变量都是一个8位的寄存器,需要找几位才需要结果才不会OVERFLOW

我认为答案是11

我们可以采取的最大数量(a-b) + the biggest number in (c-d+4)

如果有人能解释一下,那就太好了。

0 投票
2 回答
5099 浏览

python - python中的位移

我想了解以下代码。第三条线在做什么?

如果我检查 number 和 shift_no 结果的二进制格式:

谢谢。

0 投票
1 回答
204 浏览

python - 如何在移动整数时绕过 Go int64 值限制?

我正在尝试使用 Go 来KiB, MiB, ..., ZiB, Yib分别获取KibiByte, MebiByte, ..., ZebiByte, YobiByte.

我在 Golang 中的代码是:

但是,ZiB and YiB溢出 Go的值,uint64这就是为什么我有这个输出:

否则,Python3在此代码中使用相同的移位逻辑:

输出是正确的,如下面的输出:

那么,我怎样才能绕过 Gouint64限制并使用移位整数获得正确的值,就像我可以从使用 Python 移位整数中得到的一样。

谢谢。

0 投票
2 回答
186 浏览

prolog - Converting a list of Bytes to Integer in Prolog

I'm trying to convert a list of bytes to it's corresponding integer. I would like to bind to the second variable as the documenting comment would suggest. I'm printing it out as a temporary hack.

It's printing the correct value, but I'm not sure why it's not binding to the second variable for further use. What improvements can I do to accomplish this?

0 投票
0 回答
190 浏览

copy - 使用 memcpy 复制 2 个字节时的字节数

对于上述程序,我期望 crc 值为:0x72AE,但结果为:crc = 0xAE72

我无法理解为什么字节被洗牌,即使我正在做一个 memcpy?

任何形式的帮助将不胜感激。提前致谢。

0 投票
3 回答
287 浏览

c++ - 在没有类型双关语的情况下切换字节顺序

我需要切换字节的顺序,以便 int16 的内容为 (byte1, byte2) -> (byte2, byte1)。我使用联合来做到这一点:

现在这确实适用于 gcc,但我被告知这是未定义的行为(gcc 6.3,C++11)。

问题:

1)这真的是未定义的行为吗,我问是因为我以前在嵌入式代码中看到过这个。其他 stackoverflow 问题似乎对此进行了辩论,实际上谁是正确的(对于 C++11 和 C++14)。

2)如果这是未定义的行为,是否可以在不以可移植方式进行大量位移的情况下完成字节顺序交换。我真的很讨厌位移,它非常丑陋。

0 投票
2 回答
81 浏览

c# - 整数转换中的字节移位问题

我在需要将其转换为整数的二进制文件中读取了 3 个字节。

我使用此代码读取字节:

last1Hz.NumData是一个integer

这似乎是在我看到的帖子中bytes转换的好方法。integers

这是读取的值的捕获:

在此处输入图像描述

但整数last1Hz.NumData始终为 0。

我错过了一些东西,但不知道是什么。