在无符号字符和签名字符之间转换
Cast between unsigned and signed char. How to?
我有一个问题,作为一名学生,我必须使用OpenSSL。我的任务是计算带有盲法的 RSA 签名,它同时使用 char
和 unsigned char
.我这么说是为了以防有人想知道我为什么要使用这些类型,char
和unsigned char
,如此复杂。
我的问题是,在没有指针的情况下将强制转换应用于自身char
/unsigned char
的规则和良好实践建议是什么,适用于向量/指针,为什么不应用于矩阵。
如果需要更多细节,我很乐意遵守。不用说,我已经搜索过,但除了铸造 int 和无符号的 int 之外,找不到其他任何令人满意的答案,因此,如果这是一个转发,我会毫不犹豫地指出正确的方向。
char yourChar = 'a';
unsigned char yourUChar = static_cast<unsigned char>(yourChar);
int yourInt = 1;
unsigned int yourUInt = static_cast<unsigned int>(yourInt);
一个向量只是多个整数,你会在向量中强制转换每个成员。矩阵也是如此。
如果将具有负值的有符号值强制转换为无符号类型,则可能会产生不希望的行为。例如,将 -1 强制转换为无符号 int 会为您提供按位值 -1 强制转换为无符号 int。一个 -1 的 32 位有符号 int 在十六进制中0xFFFFFFFF,所有 1 都是二进制的,将其转换为无符号会使位为 1,但不是你拥有最大的 32 位无符号 int,即 4,294,967,295。
相关文章:
- 使用.find函数在c++中查找字符和另一个字符之间的大小
- 函数签名与调用的函数不匹配,常量字符[]和字符*之间的区别?
- 相同字符之间的最小距离
- 常量字符 [] 和常量字符*之间的区别
- 字符* 和 std::字符串和常量字符*之间的转换
- 为什么常量字符[]和常量字符*之间的比较不同
- 字符* 和无符号字符* 之间不兼容
- 文件名如何在"char"和2字节字符之间工作
- 如何在多个不同字符之间获取多个字符串
- 如何从两个字符之间的文件中提取整数
- 删除两个字符之间的文本
- 在代表 UTF8 的有符号字符和无符号字符之间进行转换
- 在屏幕上拼接的字符之间创建空格 - SDL
- 参数表中字符 [N] 和字符 (&)[N] 之间的区别
- 从隐藏在随机字符之间的文件中提取整数
- 字符串中字符之间的空格
- 常量字符 [] 和字符 [] 之间的区别
- 将两个 '' 字符之间的子字符串提取到单独的数组中
- 为什么我不能在字符 * 和无符号字符 * 之间static_cast?
- 从 c++ 到 Java 行的命名管道连接,每个字符之间有空格