标签: unsigned-char

无符号字符上的随机数一直是'?'

我之前曾问过一个与生成随机无符号字符有关的问题,但是由于我应用的简单性,所以提出了很好的建议. srand((unsigned)time(NULL)); rand()%256;

我在节目开始时给这个号码打了一次,但是我一直在'?' 对于一个随机的char.不是所有的时间,但大部分时间,这使我失去了我的焦点.

c++ random unsigned-char

1
推荐指数
2
解决办法
475
查看次数

获取unsigned char*的正确方法是什么?

我的代码给出了我期望的unsigned char指针的不同长度.我认为我应该为pph和pphChar获得12(或13)或0(或1).我的问题是什么?当我重复跑步时,每次长度和长度都有不同的结果.

我怎样才能获得pph的长度?

我需要在末尾加上'\n'来确定长度吗?

我使用VS2010,XP和C++.

#include "stdafx.h"
#include <stdlib.h>
#include <Windows.h>
#include <stdio.h>
#include <tchar.h>

typedef unsigned char uint8_t;

int _tmain(int argc, _TCHAR* argv[])
{

int length;
int len = 13;
uint8_t *phh;
char * phhChar;

printf("assigned mem %d\n", sizeof(unsigned char)*len);
phh = (unsigned char *) malloc(sizeof(unsigned char)*len);
phhChar = (char *) malloc(sizeof(char)*len);

phh[0] = (unsigned char) '1';
phh[1] = (unsigned char) '2';
phh[2] = (unsigned char) '3';
phh[3] = (unsigned char) '4';
phh[4] = (unsigned char) '5';
phh[5] = …
Run Code Online (Sandbox Code Playgroud)

c++ strlen unsigned-char

1
推荐指数
1
解决办法
5025
查看次数

将数据从int复制到2个无符号字符

如何将数据从int(int port1 = 52010)复制到一对无符号字符(unsigned char port2[2]?我不知道如何处理除法.

c int unsigned-char

1
推荐指数
1
解决办法
199
查看次数

显示unsigned char的第一个字符*

我有以下代码(我删除了无用的部分):

unsigned char* decrypted= (unsigned char *) malloc(500);
bufSize = operations.RSADecrypt(newEncrypted, bufSize, key, decrypted);
printf("Test: %s", decrypted);
Run Code Online (Sandbox Code Playgroud)

我想只显示第bufSize一个字符,decrypted因为它实际上显示了很多无意义的字符!

c++ printf unsigned-char

1
推荐指数
1
解决办法
864
查看次数

警告:左移计数> =类型的宽度[默认启用]

我有以下代码:

long int compute_data_length(unsigned char* buf, int data_offset) {

long int len;

if(!buf)
    return -1;

switch(data_offset) {
    case 2: {
                len = (buf[2] << 8) | buf[3];
            }
            break;
    case 8: {
                len = (buf[2] << 56) |
                      (buf[3] << 48) |
                      (buf[4] << 40) |
                      (buf[5] << 32) |
                      (buf[6] << 24) |
                      (buf[7] << 16) |
                      (buf[8] <<  8) |
                      (buf[9]      );
            }
            break;
    default: len = -1; break;
}
return len;
}
Run Code Online (Sandbox Code Playgroud)

编译时,我收到以下警告:

math_fun.c:240:21:警告:左移计数> =类型的宽度[默认启用] len =(buf …

c int bit-shift undefined-behavior unsigned-char

1
推荐指数
1
解决办法
6570
查看次数

c ++ unsigned char数组分配 - 分段错误

我无法弄清楚我从这里得到分段错误似乎是什么问题:

#include <stdio.h>
#include <stdlib.h>
#include <cstring>

void alloc(unsigned char *data) {
    data = (unsigned char *) malloc(20);
    memset(data, 0, 20);
}

void main() {
    unsigned char *data = NULL;
    int i;
    alloc(data);
    for (i = 0; i < 20; i++) {
        data[i] = i;
        printf("%d ", *(data + i));
    }
    free(data);
}    
Run Code Online (Sandbox Code Playgroud)

无符号字符是1个字节,因此循环20应该是正确的

c malloc memset segmentation-fault unsigned-char

1
推荐指数
1
解决办法
4130
查看次数

std::string 到 unsigned char[] 和 unsigned char* 有什么不同?

我从文件中获取一个字符串,并将该字符串转换为未编码的 char[]。这是我的代码:

unsigned char c[16];
std::string message = ReadFile(); // get string from file
strcpy((char*)c,message.c_str());
Run Code Online (Sandbox Code Playgroud)

并将字符串转换为无符号字符*

unsigned char* c;
std::string message = ReadFile(); // get string from file
c = (unsigned char*)message.c_str();
Run Code Online (Sandbox Code Playgroud)

我不明白他们有什么不同。他们是一样的吗?

c++ string unsigned-char

1
推荐指数
1
解决办法
1931
查看次数

在按位求反运算中使用unsigned char有什么用?

unsigned char a = 10,b;
b = ~a;
printf(" %d \n ",b);
Run Code Online (Sandbox Code Playgroud)

输出:

245

如果我使用相同的程序int而不是unsigned charo/p更改 -11

c negate unsigned-char

1
推荐指数
3
解决办法
411
查看次数

如何将char数据附加到std :: vector而不引起复制

我有一个chars向量,其中包含一些数据元素。

std::vector<unsigned char> data_1;
Run Code Online (Sandbox Code Playgroud)

我有一个未签名的char *,它指向另一组数据元素。

unsigned char * data_2;
Run Code Online (Sandbox Code Playgroud)

问题:
有没有一种方法可以合并data_2data_1向量中而根本不引起数据元素的复制?

我读到了本次讨论中提到的移动语义,但是我不确定在这种情况下是否有可能。

c++ stdvector unsigned-char c++11

1
推荐指数
1
解决办法
92
查看次数

如果我的目标是可移植性,我应该对具有负值的字符使用带符号的字符吗?

char数据类型是不能保证签名,它是该装置上一些实施方式中signed,和对他人它是unsigned。那么为什么人们总是忽略signed限定词呢?

char c = 'C'; // can be signed or unsigned
signed char sc = 'D'; // explicitly signed
unsigned char uc = 'e'; // explicitly unsigned
Run Code Online (Sandbox Code Playgroud)
  • 对于可移植性,我就应该总是限定一个char带有signed如果我想的字符保持负值?

  • 正如我所了解的其他类型,如int, long,short总是signed除非明确限定为unsigned

c++ char unsigned-char

1
推荐指数
1
解决办法
44
查看次数