如何将unsigned char 转化为int
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将unsigned char 转化为int相关的知识,希望对你有一定的参考价值。
比如unsigned char 258 的值是2,但是我想要的是258,怎么让int的值是258而不是2
感觉最后一个比较合理,感觉适用范围是小于510时可用,但是如果是3011呢
既然你定义成unsigned char那他只能表示0-255.
unsigned char x=258;
这相当于int x1=258; x=(unsigned char)x1;
由于char类型只有8位,258的二进制要9位才能表示,所以最高位就丢失了。
x只保留了258的低8位,也就是2;丢失的第九位是找不回来的。
所以,要想表示258,就不要定义成char,定义成int存储就好了
最后一个比较合理?我靠,你是学文科的吧?
谁能告诉我他写的
private:
unsigned data_;
这是啥玩意???还有他那int()函数里的c是从哪里冒出来的?
你问的是怎么unsinged char 258转换成int值不变,
直接定义成int不就完事,自己封装一个类,脱裤子放屁。
学了四、五年C++,今天受教了 参考技术A #include
int
main()
unsigned
char
ch='5';
printf("%d\n",ch-'0');//ch的ascii值为48+5,所以减去48(即字符'0')即可。
printf("%d\n",(int)ch-48);//强转(int)ch完后,ch成为int型的53.//因为53才是ch真正在计算机中存储的值。
return
0;
其实,你可以将字符ch=‘5’,看做ch=53,这是它的本质。所以,ch是可以直接和数字相加减的。 参考技术B
代码为:
#include <iostream>#if _MSC_VER > 1020
using namespace std;
#endif
int main(void)
unsigned char myChar = 'A';
unsigned char *A;
int B;
A = &myChar;
B = static_cast<int>(*A);
cout<<B<<endl;
return 0;
还可以:
unsigned char uChar = 0xff;
转换成int iNum = (int)uChar;
这个转换还可是隐式转换, 即int iNum = uChar;
// ..............
public:
operator int()
if(c<256)
return (int)c;
else
return (int)(256+(c-256);
//..............
private:
unsigned data_;
//...........
参考技术D 强制类型转换即可。
以上是关于如何将unsigned char 转化为int的主要内容,如果未能解决你的问题,请参考以下文章
刚开始学C++,想请教高手们一下,将CString类型字符串转换为unsigned char型字符数组的转化方式
ARDUINO 中将一个unsigned char 的数组的数据转化为一个long 型的数
unsigned char dat=29;dat=dat&0xff 是啥意思,是把十进制转化成16进制吗
如何将 unsigned char[] 转换为 std::vector<unsigned char>
uint8_t uint32_t 类型强制转换出错 以及 unsigned char 类型和 unsigned int 类型相互转化