我有一个快速的,我在假设问题,但我无法在网上找到任何东西.
如何计算unsigned char数组中元素的平均值?或者更喜欢它,对unsigned char执行操作?
我想初始化一个 长度为1500 的unsigned char*缓冲区,以便我可以从其他来源存储值.
我正在寻找使用 C++ 将双精度向量更改为无符号字符。为了确保它有效,我写道:
unsigned char x = 0;
double y = 4.6;
x = (unsigned char) y;
printf("%d", y);
cout << endl << "the char of 4.6 is: " << x;
getchar();
Run Code Online (Sandbox Code Playgroud)
但是我得到的不是等于 4 或 5 的字符,而是一个巨大的数字,例如 1717986918 或带有 cout 的菱形符号。
我认为这是因为它将 4.6 解释为“4.6”,但有没有办法保存它,因此它只是成为接近相等值的无符号字符?
我真的很新,C++所以如果这是一个天真的问题,请原谅我 - 但我一直在寻找答案.
我正在尝试使用以下代码创建一个unsigned char大小的数组1024:
unsigned char *r_record = new unsigned char[1024]();
Run Code Online (Sandbox Code Playgroud)
现在我有一个std::string变量:
std::string hw = "Hello Word";
Run Code Online (Sandbox Code Playgroud)
我想从字节开始填充r_recordwith hw(即'Hello World')10'th.
我怎样才能把hw成r_record?
所以实际上,我的r_record数据看起来像(.s为空的):
[.........Hello World......and so on]
Run Code Online (Sandbox Code Playgroud) 以下程序
short b =-10;
printf("%x %d",b,sizeof(b));
Run Code Online (Sandbox Code Playgroud)
输出(与vs 2008)
FFFFFFF6 2
Run Code Online (Sandbox Code Playgroud)
为什么不
FFF6 2
Run Code Online (Sandbox Code Playgroud)
签名字符也一样.
将std :: string转换为unsigned char*并返回的代码是什么?
str = "1234567891234567"
unsigned char* unsignedStr = ConvertStrToUnsignedCharPointer(str);
str1 = ConvertUnsignedCharToStr(unsignedStr);
Run Code Online (Sandbox Code Playgroud)
str并且str1必须相同而不会损失精度.
我有一个包含, , , , ,的char缓冲区bufbuf[0] = 10buf[1] = 3buf[2] = 3buf[3] = 0buf[4] = 58
和一个结构:
typedef struct
{
char type;
int version;
int length;
}Header;
Run Code Online (Sandbox Code Playgroud)
我想将 转换buf为Header. 现在我正在使用该功能
int getByte( unsigned char* buf)
{
int number = buf[0];
return number;
}
int getInt(unsigned char* buf)
{
int number = (buf[0]<<8)+buf[1];
return number;
}
main()
{
Header *head = new Header;
int location = 0;
head->type = getByte(&buf[location]); …Run Code Online (Sandbox Code Playgroud) 我目前正在用C语言编写程序.我的程序中i声明了一个变量.我已将其初始化为:
unsigned char i = 0x00;
Run Code Online (Sandbox Code Playgroud)
接下来,我有一个while循环,在while循环中,我将增加unsigned char16并将其显示为七位数(例如0000080).好吧,这对于前16个值完全正常运行,但每当unsigned char到达00000f0并再次递增时,它就会返回到0000000.为什么这样,我如何更改我的代码来解决这个问题?提前致谢.
当我将数据写入缓冲区或从缓冲区写入数据以保存到文件时,我倾向于使用std::vector<unsigned char>,并且我将这些无符号字符视为要写入任何内容的字节,因此:
int sizeoffile = 16;
std::vector<unsigned char> buffer(sizeoffile);
std::ifstream inFile("somefile", std::ios::binary | std::ios::in);
inFile.read(buffer.data(), sizeoffile); // Argument of type unsigned char* is incompatible
// with parameter of type char*
Run Code Online (Sandbox Code Playgroud)
的第一个参数ifstream::read()想要一个char指针,但我的向量缓冲区是unsigned char. 什么样的类型转换适合在这里将数据读入我的缓冲区?它本质上是一个char*to unsigned char*。我可以使用 reinterpret_cast 或 C 风格的转换,但这让我觉得我做错了什么,因为这些根本不经常被推荐。我是否为缓冲区选择了错误的数据类型(无符号字符)?
我想知道如何告诉编译器a #define是无符号字符.
#define SET_BITS_LOW 0x80
Run Code Online (Sandbox Code Playgroud)
默认情况下,这SET_BITS_LOW是一个int,但我想要一个unsigned char