问题标签 [unsigned-char]

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 回答
1826 浏览

c++ - 如何将字节数据从套接字写入 C 中的无符号字符向量?

我正在使用 bsd 套接字在 C 中开发一个服务器,在该套接字中我从客户端接收 jpeg 帧。

帧数据作为 jpeg 格式的字节数据流到达服务器。

由于字节等效是 C 中的无符号字符,因此我在 sock.recv() 函数的多次迭代中将这些数据接收到无符号字符向量中。

问题是当我将此数据写入 .jpg 文件时,它仅将文件大小显示为 4 个字节。

我还检查了在帧的所有迭代中从 recv 缓冲区中挑选的字节数等于发送帧的总大小,但不知何故,它们没有正确写入我使用的向量中。

有谁知道该怎么做?谢谢 !

这是我从套接字读取数据的代码:

是的,我在服务器上正确接收数据,因为我还在 PYTHON 中创建了一个假服务器并成功地重建了那里的帧。这是我在 python 中所做的:

0 投票
2 回答
1588 浏览

objective-c - unsigned char alloc 和免费问题

我对一件奇怪的事情感到困惑......我有一个 unsigned char 数组......我使用 calloc 分配它并在其中记录一些字节数据......但是当我释放这个 unsigned char 并再次分配它时,我看到它在内存中保留了上次分配的相同地址。我明白为什么....但是我不明白为什么我第二次尝试在那里写入的数据没有被写入......第一次写入的数据被写入......有人可以解释一下吗? ???

unsigned char *rawData = (unsigned char*) calloc(height * width * 4, sizeof(unsigned char));

这就是我分配它的方式....实际上我的问题是由于这种分配,每2秒发生一次我有内存泄漏...但是当我尝试释放分配的内存扇区时,会发生上述情况... .:(

请如果有人可以帮助我......我会很高兴......这是代码......

在这段代码中没有我释放(rawData)的部分,因为我无法在这个方法中释放它,所以我尝试全局定义 rawData 并在调用这个方法后释放它......但没有什么有趣的......

请如果有人可以帮助我......我会很高兴......

0 投票
2 回答
5759 浏览

c++ - what is the correct way to get strlen for a unsigned char *

My code below gave a different length for the unsigned char pointer I expect. I thought I should be getting 12 (or 13) or 0 (or 1) for pph and pphChar. What is my problem? I got different results for length and oneLength each time, when I repeat the run.

How can I get the length of pph?

Do I need to put a '\n' at the end to determine the length?

I use VS2010, XP and C++.

OUTPUT

assigned mem 13

size of char 1

len 32 - different each time

oneLength 32 - different each time

0 投票
1 回答
12056 浏览

c++ - 如何读入二进制数据并转换为无符号字符(C++)

我有一个以二进制数据(无编码)保存的原始图像文件。我想读入文件并将值转换为无符号字符。但我不确定如何开始这样做。每个文件包含 640x480 字节。每个像素为 8 位。

我在这里使用了 C++ 帮助页面:http ://www.cplusplus.com/doc/tutorial/files/,但是当我计算数据时,它似乎显示了相同的二进制/非人类可读字符。有人可以建议吗?到目前为止,这是我的代码:

这是输出的示例捕获:

0 投票
1 回答
1804 浏览

c++ - 将从 SHA1 返回的 unsigned char* 覆盖为字符串

我使用此链接为使用 C++ 的任何数据创建 SHA1 哈希。但是 SHA1 调用的输出缓冲区是无符号字符 *。我想存储十六进制值,即消息摘要值,以便我可以将它们用于其他操作。

由于它们是 unsigned char* ,因此将它们转换为字符串然后执行十六进制转换是没有意义的。所以我必须进行十六进制转换,然后将值存储为字符串或 char*。我怎样才能做到这一点?

0 投票
1 回答
480 浏览

c - 为什么打印 unsigned char 有时有效,有时无效?在 C 中

对于一个学校项目,我正在编写河豚加密(只是加密,而不是解密)。我已经完成了加密本身,我决定为了好玩而进行解密(在 Blowfish 中这很容易)。

我使用无符号字符来表示字节(尽管我认为 uint8_t 会更便携)。当我试图打印出解密的字节时,我遇到了这个问题。我正在加密纯文本消息。我已经能够打印出我加密的实际短信,但仅限于一个非常特定的位置。相同的确切代码似乎在其他任何地方都不起作用。这里是:

但是当我尝试在两行之后使用完全相同的代码时,它不起作用

我也试过以数字格式打印出字符,我可以看到它们实际上已经改变了。

这里到底发生了什么?这是未定义的行为吗?有没有人有可靠的解决方案?我没有做任何事情来更改两个调用之间的消息数组的值。

我正在使用 sparc 处理器在 Sun 5.10 上运行和编译它。

0 投票
1 回答
3211 浏览

java - 如何定义 swig 类型映射以将 unsigned char* 返回到 java

我有一个 Java 应用程序,它调用 ac 库来执行加密功能。这是一个用 c 实现的自定义库,我们需要从一些 Java 程序中使用它。我需要一种方法来定义一个 SWIG 类型映射,它允许我调用一个从 Java 传递 bytearray 的函数,并将其视为 C 函数中的无符号字符指针,其中 c 函数填充数据并将其返回给 java

我目前不满意的接口文件摘录如下


我不满意的Java代码摘录如下。在下面的代码中,我预计对 enCrypt 函数的调用会给我一个缓冲区,但根据生成的代码,它会给我一个“短”。(见代码中的注释)


我想我应该将我的接口定义更改为如下所示,我将第三个参数设为 jbytearray,然后我必须实现一个类型映射,它将 C 程序中无符号字符指针指向的内容复制到 java bytearray。

如果我必须将内容的长度指定为 256 字节,那我很好,因为处理任意长度可能会很棘手。

有人能指出我可以找到这样一个类型图的地方吗(我是 SWIG 的新手,没有编写类型图的经验)

0 投票
2 回答
319 浏览

c - 这个奇怪的函数将字符串转换为二进制吗?

我正在对我们系统中的旧 c 代码进行错误修复(奇怪的是,它不是标准 c。它不是由 gcc 编译的)。我来到这个代码,它似乎正在将字符串转换为无符号字符格式的二进制代码。逻辑让我感到困惑(粗体部分)。这对你们有意义吗?

我需要理解这段代码,因为我必须复制它并在另一个长度不是 13 而是 11 的字符串上重用它。

0 投票
3 回答
4002 浏览

c - Unsigned char to char* and int in C?

Working on some encryption that requires unsigned char's in the functions, but want to convert to a char for use after it's been decrypted. So, I have:

Now at this point, let's say plaintext is actually a data string of "0123456789". How can I get the value of plaintext into plainchar as "012456789", and at the same time plainint as 123456789?

-- Edit --

Doing this when plaintext is equal to "AAAAAAAAAA105450":

Makes plainchar equal to "AAAAAAAAAA105450╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠┤∙7" with a sizeof = 51. The encryption code is the rijndael example code, so it should be working fine.

Thanks, Ben

0 投票
3 回答
113 浏览

c++ - ANDing和比较时的符号转换

我有以下代码:

我尝试了几乎所有内容,但我似乎无法弄清楚为什么一个简单的 AND 会导致此警告。两个变量都是无符号的。有任何想法吗?