C/C++怎样将char转换成unsigned char
char为字符类型。
unsigned char为无符号字符类型。
二者均是占一个字节,可以直接通过强制转换的方式,把char类型的值转为unsigned char。
当定义变量:unsigned char a;char b;转换的形式为:a = (unsigned char)b;当char类型的值为正时,转换后的值为原值。
当char类型为负时,原始值的符号位会转为数据位,即结果值为原始值补码代表的无符号值。
具体计算公式为,结果值=256+原始值。
const char*转char*怎么转?
指向const的指针不能被赋给指向非const的指针,所以应该用strcpy,也就是另开一块内存,把字符一个个复制过去,示例如下:const char *expr = "goodidea";char *buf = new char[strlen(expr)+1];strcpy(buf, expr);strcpy原型:extern char *strcpy(char *dest,char *src);用法:#include 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串,返回指向dest的指针。
MFC 如何实现CString转DWORD!!!SOSOSOSOSOS!!!!
unsigned long long要用%lu格式符。
直接引起变为负数的是256*256*256*s[0]。
因为此时运算的数据是默认的int型,乘积的结果为2147483648,已经超出了int的最大值2147483647,所以就变成了负数了。
vc 如何char数组转换DWORD
看下边这个吧,刚才那个似乎不对,先声明一个_variant_t类型的对象,然后条用如下函数。
就是这样:_variant a; a.SetString("source string");这是函数的说明_variant_t::SetStringMicrosoft Specific void SetString( const char* pSrc ) throw( _com_error );Parameter pSrc pointer to the character stringRemarksConverts an ANSI character string to a Unicode BSTR string and assigns it to this _variant_t object._variant_tMicrosoft Specific A _variant_t object encapsulates theVARIANT data type. The class manages resource allocation and deallocation, and makes function calls to VariantInit and VariantClear as appropriate.#include Compiler COM Support Class OverviewConstruction_variant_t Constructs a _variant_t object. OperationsAttach Attaches a VARIANT object into the _variant_t object. Clear Clears the encapsulated VARIANT object. ChangeType Changes the type of the _variant_t object to the indicated VARTYPE. Detach Detaches the encapsulated VARIANT object from this _variant_t object. SetString Assigns a string to this _variant_t object. Operatorsoperator = Assigns a new value to an existing _variant_t object. operator ==, != Compare two _variant_t objects for equality or inequality. Extractors Extract data from the encapsulated VARIANT object. 不要用哪个空间了,直接用下边的代码进行串口操作吧。
你要是非得用,我可以给你发过去,需要找下具体是怎么写的。
** 打开端口名称 ** */ string it_comm("\\\\.\\"); try { it_comm.append("COM1"); hCom = CreateFile(it_comm.c_str() , GENERIC_READ | GENERIC_WRITE , 0 , NULL , OPEN_EXISTING , 0 , NULL ); if (hCom == INVALID_HANDLE_VALUE) { throw bad_exception((it_comm + ":打开串口失败").c_str()); } //设置波特率、校验位等 commcfg.dcb.BaudRate = uiBaudRate; commcfg.dcb.ByteSize = 8; commcfg.dcb.Parity = NOPARITY; commcfg.dcb.StopBits = ONESTOPBIT; commcfg.dcb.fBinary = TRUE; commcfg.dcb.fDtrControl = DTR_CONTROL_DISABLE; commcfg.dcb.fRtsControl = DTR_CONTROL_DISABLE; //CommConfigDialog(it_comm->c_str(), NULL, &commcfg); /* * * 应用新的串口配置 */ fSucc = SetCommConfig(hCom, &commcfg, (DWORD)sizeof(commcfg));/* * * 发送数据 */ fSucc = WriteFile(hCom , buf , (DWORD)buf_length , &lenw , NULL ); if (!fSucc) { throw bad_exception((szCommPortName + ":发送失败").c_str()); }/* * * 读取数据 */ fSucc = ReadFile(hCom , buf , (DWORD)buf_length , &lenr , NULL ); if (!fSucc) { throw bad_exception((szCommPortName + ":读取失败").c_str()); }
如何将char*转换为wchar
char 转 WCHARWCHAR * charToWchar(char *s){int w_nlen=MultiByteToWideChar(CP_ACP,0,s,-1,NULL,0);WCHAR *ret;ret=(WCHAR*) malloc(sizeof(WCHAR)*w_nlen);memset(ret,0,sizeof(ret));MultiByteToWideChar(CP_ACP,0,s,-1,ret,w_nlen);return ret;}返回结果用完要free掉.WCHAR 转charchar* WCharToChar(WCHAR *s){int w_nlen=WideCharToMultiByte(CP_ACP,0,s,-1,NULL,0,NULL,false);char *ret=new char[w_nlen];memset(ret,0,w_nlen);WideCharToMultiByte(CP_ACP,0,s,-1,ret,w_nlen,NULL,false);return ret;}返回结果用完要free掉.
c语言中,怎样把内容为数字的char转换为int?
内容为数字的char,包含0,1,2,3,4,5,6,7,8,9共计10个字符。
这十个字符在存为字符型时,其存储值为对应的ascii码,而这些ascii码是连续的,且按照其本身数字的大小来排列。
这样就可以将字符值,减去起始ascii码值实现转为对应值的效果。
设int a; //转换的目标变量。
char c = '7'; //要转换的字符。
c = a - '0'; 这样得到的就是对应的值了,即c = 7。
如果在文件中需要多次该操作,则可以定义一个带参宏,如下:#define chartonumber(x) (x-'0')这样只需要调用c = chartonumber(a);即可实现效果。
c语言 char转成int数值不对
#include #include void main(int argc,char *argv[]){//FILE *dataFile="a.txt";char charFromFile,fileName[20]; char buf[256];int intLen;//charFromFile=fgetc(dataFile);charFromFile='2';printf("charFromFile =%c\n",charFromFile);buf[0]=charFromFile;buf[1]=0;intLen = atol(buf);printf("intLen =%d\n",intLen);}运行结果:charFromFile =2intLen =2
C语言 如何将char 单字符型转成int型???
char a='1';char base='0';int i = (int)a - (int)base;//可以简单点写一个宏#define ATOI(X) ( (X) - 30)原理就是字符型实际是存储的整数,具体数值可查ASCII表,而数字0-9的ASCII是相邻的,数字字符通过减去基础的'0'的ASCII码值,就能得到对应的字符代表的实际数字,然后赋值给其他数字型变量即可。
下面是ASCII表
转载请注明出处51数据库 » c char* 转dword