怎样把unsigned short 转换为 unsigned char

如题所述

char 和short 是一样的,都是1个字节,至于无符号的话,char不存在这个问题。
两者可以直接替换使用,没有问题。如果编译器有警告,则static_cast<unsigned short>(charVal),这样转化即可
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-28
unsigned short s;
unsigned char c;
1.直接赋值
c=s;
2.强制转换
c=(unsigned char)s;
3.C++建议用法
c = static_cast<unsigned char>(s);

//short一般占两个字节
char占一个字节本回答被提问者和网友采纳
第2个回答  推荐于2016-12-05
unsigned short 转换为 unsigned char可以这样转:
unsigned short * word;
int size= WideCharToMultiByte(CP_ACP,0,word,-1, NULL, 0, NULL,0);
char * AsciiBuff =new char[size];
WideCharToMultiByte(CP_ACP,0,word,-1,AsciiBuff,size, NULL, 0);

如何将unsigned short 转换成unsigned char
unsigned short 转换为 unsigned char可以这样转:unsigned short * word;int size= WideCharToMultiByte(CP_ACP,0,word,-1, NULL, 0, NULL,0);char * AsciiBuff =new char[size];WideCharToMultiByte(CP_ACP,0,word,-1,AsciiBuff,size, NULL, 0);

C++ unsigned short 转为unsigned char怎么转
unsigned short 转换为 unsigned char可以这样转:unsigned short * word;int size= WideCharToMultiByte(CP_ACP,0,word,-1, NULL, 0, NULL,0);char * AsciiBuff =new char[size];WideCharToMultiByte(CP_ACP,0,word,-1,AsciiBuff,size, NULL, 0);

sprintf 如何输出unsigned char类型数据
char -- %c或%hhd %c采用字符身份,%hhd采用数字身份;unsigned char -- %c或%hhu short -- %hd unsigned short -- %hu long -- %ld unsigned long -- %lu int --

C语言 unsigned short 如何相互转 signed char
int main(){ char ca;unsigned char ucb;unsigned short usc;ca = 128;ucb =128;usc = ca + ucb;printf("%d\\n", usc);usc = ca + (short)ucb;printf("%d\\n", usc);usc = (unsigned char)ca + ucb;printf("%d\\n", usc);usc = ca + (char)ucb;printf("%d\\n", usc);ge...

C语言中的unsigned char数组怎么转成unsigned short数组
是的改成0X3272就可以了 用左移和 按位加:( 0x32 << 16) | 0x72 --- 如果涉及 big_endian 和 little_endian 变化,则互换两个字节即可

如何把unsigned short *转化为const char
完整的可以这样转:unsigned short * word;int size= WideCharToMultiByte(CP_ACP,0,word,-1, NULL, 0, NULL,0);char * AsciiBuff =new char[size];WideCharToMultiByte(CP_ACP,0,word,-1,AsciiBuff,size, NULL, 0);

c++ 如何将unsigned short 数组转换成 int 类型?
1、移位相加即可,但是要注意unsigned short类型,需要转换为无符号数据,否则0xe8认为是负数(其实也可以定义时就为unsigned short)。2、例程:include <stdio.h>int main(){ int i, result = 0; unsigned short a[4] = {0x00,0x00,0x03,0xe8};\/\/这里定义成unsigned char,那么下面就不...

...short dd=5392强制转换成unsigned char的结果是16呢?
发生了截断,因为unsigned char类型只有1字节,只能保存0~255的数据,而unsigned short 有2字节。所以这样转换之后,unsigned short 高2位的数据就丢失了,低2位数据被保存了。(高低位是以16进制来看的)高低位提取:unsigned short a = 0xFEBA;int b = a & 0xFF00; \/* 高2位=0xFE00 *\/ in...

...如何将short数组转换为unsigned char数组(我原先的方法太慢了)_百...
用内存copy方法吧 short A[10];unsigned char B[20];memcpy( B, A, 20 );

二进制转换成int和unsigned int的问题?
问题1;unsigned short 为2个字节: 在内存中的存储为:00000000 00001010 而以%u的输出就是以32位的整型输出:所以为:00000000 00000000 00000000 00001010 取反得:11111111 11111111 11111111 11110101= 4294967285 看来这个是先格式化,再取反.问题2:char c=128;128为整型:在内存中的存储为:000000...

相似回答