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

c++ - 当我需要一个字符串时,我可以用 unsigned char* 做什么?

假设我有一个 unsigned char*,我们称之为:some_data

some_data 中包含类似 url 的数据。例如:

我有一个函数可以获取 'foo' 的值,如下所示:

问题是我需要一个字符串来传递给这个函数,或者至少是一个 char* (可以转换为字符串没问题)。

我可以通过强制转换来解决这个问题:

然后将其传递给函数 all okie-dokie

...

直到我使用 valgrind 并发现这会导致微妙的内存泄漏。

从我收集到的信息来看,这与重新解释转换弄乱了指示字符串结尾的空值有关。因此,当 c++ 试图找出字符串的长度时,事情就会变得很棘手。

鉴于我无法改变 some_data 由 unsigned char* 表示的事实,有没有办法在没有这些微妙问题的情况下使用我的 grabFooValue 函数?

我宁愿保留我已经拥有的价值发现功能,除非显然有更好的方法可以将 foo 值从这个(有时很大)unsigned char* 中提取出来。

尽管 unsigned char* some_data 的大小不同,有时甚至很大,但我可以假设 'foo' 的值会在早期某个地方,所以我的想法是尝试获取第一个 X 字符的 char*无符号的字符*。通过让我设置 char* 结束的位置,这可能会消除字符串长度问题。

我尝试使用 strncpy 和 cast 的组合,但到目前为止还没有骰子。有什么想法吗?

0 投票
1 回答
1118 浏览

c# - P/Invoke, c#: unsigned char 丢失一个字节

我正在为软件的 SDK 制作一个 dll 文件,我正在尝试调用一个函数来获取有关软件主机的信息。

函数需要的结构中有两个无符号字符变量(HostMachineAddress,HostProgramVersion),当我尝试从 c# 调用它时,似乎我“松散”了最后一个字节......如果我将下面 c# 结构中的 SizeConst 更改为5 我确实得到了丢失的字节,但是它会导致其他变量丢失数据。

有人可以帮我找到解决这个问题的方法吗?还尝试使用类而不是结构导致 system.stackoverflow 错误

C#结构

C#

0 投票
3 回答
19115 浏览

c++ - 如何初始化无符号字符指针

我想初始化一个长度为 1500 的unsigned char * 缓冲区,以便我可以在其中存储来自其他来源的值。

0 投票
2 回答
3666 浏览

c++ - 将字符串转换为无符号字符 []

我目前有一个这样的数据包设置:

这个数据包被转换成一个字符串进行加密,然后需要从它的解密字符串形式取回一个数据包。我可以对除unsigned char data[]. 我尝试了以下但没有成功:

其中 data 是要复制到的数据的字符串表示形式,unsigned char []p 是数据包。

这从 valgrind 得到以下信息:

尽管它引用strcpy了源代码,但它编译并运行良好,只是memcpy注释掉了行。

我也尝试用memcpy相同strcpy的结果替换。有任何想法吗?我觉得这可能是因为数据可能尚未初始化并且没有分配任何内存,但我认为memcpy会解决这个问题。

0 投票
3 回答
3404 浏览

c - 无符号字符旋转

我对 unsigned char 是什么感到有点困惑。有符号的字符是位形式的字符的表示,对吗?一个示例问题让我们向右旋转 n 位位置,使用此解决方案的无符号字符的位:

如果有人可以用 char 示例及其各自的位进行解释,将不胜感激。非常感谢。

0 投票
2 回答
615 浏览

c++ - 显示对已定义对象的未定义引用

我正在尝试在我的项目中散列几个字符串。我正在使用以下使用 HAMC SHA1 算法的项目 http://www.codeproject.com/KB/recipes/HMACSHA1class.aspx

经过很多麻烦,我能够编译整个代码。但最后我留下了与未定义引用有关的最后一个问题。

我编写了以下代码来调用项目中给出的 HMAC SHA1 类,如下所示

HMAC_SHA1.cpp 的以下行遇到错误,如下所示:

在这里我得到一个错误:

现在在 SHA1.h

我可以看到以下代码

///////////////////////////////////////// ///////////////////////// 定义 8 位和 32 位变量

////////////////////////////////////////函数声明如下:

我正在使用 windows 环境,但在 cygwin 中编译。

我不知道为什么我会收到这样的错误

错误:未定义对 'CSHA1::Update(unsigned char*, unsigned long)' 的引用

谁能指出问题是什么以及如何纠正?

我认为 _MSC_VER 有问题,因为它应该是假的,然后 UINT_8 应该由 unsigned char 定义。请帮忙。

0 投票
3 回答
712 浏览

c - 在非二进制补码系统上,普通字符通常/总是无符号吗?

显然,标准对此只字未提,但从实际/历史的角度来看,我更感兴趣:具有非二进制补码算术的系统是否使用char无符号的普通类型?否则,您可能会遇到各种奇怪的情况,例如 null 终止符的两种表示形式,以及无法表示char. 这种奇怪的系统真的存在吗?

0 投票
2 回答
1436 浏览

c++ - C++ 中无符号字符的 ostream 运算符重载

鉴于:

我想添加<<可用于AStringand的 ostream 运算符BString

如果我对 做同样的事情BString,编译器会抱怨invalid conversion from 'const unsigned char*' to 'const char*'. ostream.write没有const unsigned char*as 参数。

它似乎<<本身接受const unsigned char,所以我尝试这样的事情

有人可以告诉我这是正确/好的做法还是有更好的方法?欢迎任何意见!

0 投票
3 回答
917 浏览

c++ - C++ iostream >> 运算符的行为与 get() unsigned char 不同

我正在编写一段代码来做一些压缩,我写了一个比特流类。

我的比特流类跟踪我们正在读取的当前位和当前字节(无符号字符)。

我注意到如果我在 istream 类中使用 >> 运算符 vs get() 方法,从文件中读取下一个无符号字符的方式会有所不同。

我只是好奇为什么我得到不同的结果?

前任:

对比

附加信息:

具体来说,我正在读取的字节是 0x0A 但是当使用 >> 时,它会将其读取为 0x6F

我不确定它们是如何相关的?(它们不是彼此的 2s 补码吗?)

>> 运算符也被定义为适用于 unsigned char 但是(请参阅c++ istream 类参考

0 投票
1 回答
2437 浏览

c++ - 将 python 列表包装为 unsigned char*

编辑:大家好!!

我目前正在尝试从 Python 访问 C++ 函数,当我尝试将 Python 列表作为参数传递给函数时遇到了问题。

这是我试图访问的 C++ 函数定义(用于向 PC/SC 阅读器发送命令):

我的目标是从 python 调用这个函数,如下例所示。目标是将列表 [1,2,3] 转换为 unsigned char * buffer :

受 SWIG 文档http://www.swig.org/Doc2.0/Python.html#Python_nn57中的示例“33.9.1 Converting Python list to a char **”的启发,我定义了以下类型映射来处理unsigned char *,但不幸的是,似乎不使用类型映射。实际上,我只能在忽略最后一个参数或设置为 None 的情况下使用该函数。

蟒蛇代码:

然后,如果我尝试为命令的数据列出一个列表(在前面的示例中替换 None),我会收到以下错误:

我认为我们在这里是为了防止“参数类型错误”,所以我猜想没有使用类型映射,因为我认为但不确定,由于参数格式不匹配而没有调用函数。所以主要问题是我如何传递一个列表并确保它会被函数接受(因此被类型映射捕获)?

我想我错过了一些东西,因为我没有找到任何可行的解决方案,而且它应该相对经常使用。

这是 SWIG .i 文件中类型映射代码的代码:

在简历中,如何使用 SWIG 类型映射来调用 C++ 函数:

就像来自python的那样:

欢迎任何帮助提前谢谢

ps 对不起,如果我的英语不好,那不是我的母语。