问题标签 [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.
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 的组合,但到目前为止还没有骰子。有什么想法吗?
c# - P/Invoke, c#: unsigned char 丢失一个字节
我正在为软件的 SDK 制作一个 dll 文件,我正在尝试调用一个函数来获取有关软件主机的信息。
函数需要的结构中有两个无符号字符变量(HostMachineAddress,HostProgramVersion),当我尝试从 c# 调用它时,似乎我“松散”了最后一个字节......如果我将下面 c# 结构中的 SizeConst 更改为5 我确实得到了丢失的字节,但是它会导致其他变量丢失数据。
有人可以帮我找到解决这个问题的方法吗?还尝试使用类而不是结构导致 system.stackoverflow 错误
C#结构
C#
c++ - 如何初始化无符号字符指针
我想初始化一个长度为 1500 的unsigned char * 缓冲区,以便我可以在其中存储来自其他来源的值。
c++ - 将字符串转换为无符号字符 []
我目前有一个这样的数据包设置:
这个数据包被转换成一个字符串进行加密,然后需要从它的解密字符串形式取回一个数据包。我可以对除unsigned char data[]
. 我尝试了以下但没有成功:
其中 data 是要复制到的数据的字符串表示形式,unsigned char []
p 是数据包。
这从 valgrind 得到以下信息:
尽管它引用strcpy
了源代码,但它编译并运行良好,只是memcpy
注释掉了行。
我也尝试用memcpy
相同strcpy
的结果替换。有任何想法吗?我觉得这可能是因为数据可能尚未初始化并且没有分配任何内存,但我认为memcpy
会解决这个问题。
c - 无符号字符旋转
我对 unsigned char 是什么感到有点困惑。有符号的字符是位形式的字符的表示,对吗?一个示例问题让我们向右旋转 n 位位置,使用此解决方案的无符号字符的位:
如果有人可以用 char 示例及其各自的位进行解释,将不胜感激。非常感谢。
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 定义。请帮忙。
c - 在非二进制补码系统上,普通字符通常/总是无符号吗?
显然,标准对此只字未提,但从实际/历史的角度来看,我更感兴趣:具有非二进制补码算术的系统是否使用char
无符号的普通类型?否则,您可能会遇到各种奇怪的情况,例如 null 终止符的两种表示形式,以及无法表示char
. 这种奇怪的系统真的存在吗?
c++ - C++ 中无符号字符的 ostream 运算符重载
鉴于:
我想添加<<
可用于AString
and的 ostream 运算符BString
。
如果我对 做同样的事情BString
,编译器会抱怨invalid conversion from 'const unsigned char*' to 'const char*'
. ostream.write
没有const unsigned char*
as 参数。
它似乎<<
本身接受const unsigned char
,所以我尝试这样的事情
有人可以告诉我这是正确/好的做法还是有更好的方法?欢迎任何意见!
c++ - C++ iostream >> 运算符的行为与 get() unsigned char 不同
我正在编写一段代码来做一些压缩,我写了一个比特流类。
我的比特流类跟踪我们正在读取的当前位和当前字节(无符号字符)。
我注意到如果我在 istream 类中使用 >> 运算符 vs get() 方法,从文件中读取下一个无符号字符的方式会有所不同。
我只是好奇为什么我得到不同的结果?
前任:
对比
附加信息:
具体来说,我正在读取的字节是 0x0A 但是当使用 >> 时,它会将其读取为 0x6F
我不确定它们是如何相关的?(它们不是彼此的 2s 补码吗?)
>> 运算符也被定义为适用于 unsigned char 但是(请参阅c++ istream 类参考
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 对不起,如果我的英语不好,那不是我的母语。