AnsiString strTemp = "123";
int nTemp = strTemp.ToInt();
INT类型
//在字符串前加"0x" ,告诉编译器是16位进制
AnsiString strTemp = "0x"+Edit6->Text;
icdev = strTemp.ToInt();
|
char类型
Edit2->Text=AnsiString::IntToHex(pVersion, 4); |
将1字节数组转化为对应的16进制字符串
//AnsiString f_bytetohex(UCHAR *buff,int ilen)
//{
// AnsiString s1;
// int i;
// s1="";
// for(i=0;i<ilen;i++)
// s1=s1+IntToHex(buff[i],2);
// };
// return s1;
//}
//根据16进制形式的字符串将其转化为字节数组
―――――――――――――――――――――――――――
AnsiString strTemp = Edit26->Text;
AnsiString strTemp2 = "";
for(int i=0,j=1;i<4;i++,j=j+2)
{
//SubString(index ,number)
strTemp2="0x" + strTemp.SubString(j,2);
pData[i]= strTemp2.ToInt();
};
―――――――――――――――――――――――――
//int f_stringtobin(AnsiString s1,int str_len,UCHAR *buff)
//{
// int i;AnsiString s2;
// for(i=0;i<str_len/2;i++)
// {
// s2= "0x" +MidStr(s1,i*2+1,2);
// buff[i]=StrToInt(s2);
// };
// return 0;
//}
char pReadData[BUFFERSIZE+11];
//.........
pReadData = pReadData + 10;
报错:
E2277 Lvalue required
------------------------------------------------
C++builder 中有rightstr,leftstr,midstr 类似的函数么?
-----------------
有类似的函数:
AnsiString Str,SubStr;
Str="C++ _ _ Builder";
SubStr=Str.SubStrig(1,3); // 1是index 3是数量
//此时SubStr的值为“C++”相当于leftstr
SubStr=Str.SubStrig(5,5);
//此时SubStr的值为“Build”相当于midstr
SubStr=Str.SubStrig(Str.length()-7,7);
//此时SubStr的值为“Builder”相当于rightstr
------------------
char *p=new char[GetBufLen(t)+1];
StrCopy(p,t.c_str());
p[number]=0;//or '\0'
char *rightstr=new char[number+1];
StrCopy(rightstr,p);
------------------------------
整型
数据类型char, short , int 和long 被认为是整型,因为它们都涉及到整数值——整个数没有小数部分,例如:
22 16 498 0 4600 -378 -912
除非是当你明确将保留字unsigned加到数字类型名前:
unsigned int
unsigned 整型值只能被确定为正数或零。
数据类型char, short , int 和long是要描述占用不同字节的大小的整数,对于特定的机器,我们可以用下列这种方式画出它们占用的字节大小。
int值的范围是从-32768到+32767。如果你的程序试图计算大于你计算机取值范围的最大值,那么会产生整数溢出。
C++中有关整型值有一点要小心:一个以零开始的字面常量是用八进制数取代十进制数,如果你写数为:
015
C++编译器取这个值为十进制13。
字符变量
|
|
|
|
|
|
|
十六进制 |
0x 000d |
|
|
|
|
八进制 |
015 |
以零开始的字符常量是用八进制数取代十进制数 |
|
|
|
十进制 |
13 |
|
|
|
面对这么长的数进行思考或操作,没有人会喜欢。因此,C,C++ 没有提供在代码直接写二进制数的方法。
编程中,我们常用的还是10进制……必竟C/C++是高级语言。
比如:
int a = 100,b = 99;
不过,由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。
但,二进制数太长了。比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是:
0000 0000 0000 0000 0110 0100
面对这么长的数进行思考或操作,没有人会喜欢。因此,C,C++ 没有提供在代码直接写二进制数的方法。
6.2.3 八进制数的表达方法
C,C++语言中,如何表达一个八进制数呢?如果这个数是 876,我们可以断定它不是八进制数,因为八进制数中不可能出7以上的阿拉伯数字。但如果这个数是123、是567,或12345670,那么它是八进制数还是10进制数,都有可能。
所以,C,C++规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制。这就是八进制数在C、C++中的表达方法。
C,C++规定,16进制数必须以 0x开头。比如 0x1表示一个16进制数。而1则表示一个十进制。另外如:0xff,0xFF,0X102A,等等。其中的x也也不区分大小写。(注意:0x中的0是数字0,而不是字母O)
| 卓越网上书城 C++Builder及计算机 相关图书 |
|
|
|
|
|
|
|
|
|
|
|
|
====================================================
====================================================
订阅免费电子杂志〈名人传记〉
每期发送电子图书,广读博览融汇贯通。阅读电子书时,请注意保护视力。╭○═○╮╭◎═◎╮╭●═●╮同步发行《名人传记简装版》简装版只包含附件联接地址,大小控制在80k以内。同时发送《热点》期刊
1 邮件订阅方式
向下面的邮件地址发一封信,邮件正文(不是标题)填写subscribe zhuanji
1.主页订阅
主页地址一
http://list.cn99.com/cgi-bin/getlsts?listname=zhuanji
主页地址二 http://yjxsuccess.blog.hexun.com/