首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

请问,如何把一个带符号的16进制数变成有正负号十进制数

2012-03-20 
请教,怎么把一个带符号的16进制数变成有正负号十进制数?请教,怎么把一个带符号的16进制数变成有正负号十进

请教,怎么把一个带符号的16进制数变成有正负号十进制数?
请教,怎么把一个带符号的16进制数变成有正负号十进制数?

[解决办法]
请问16进制数和10进制数有什么区别?
难道不都是int之类的吗?
[解决办法]
楼主是把16进制数放在char *里吧?

函数申明: char *ltoa(long value, char *string, int radix)
函数用途: 将长整形数转换为等价的字符串
头 文 件: stdlib.h
输入参数: value:待转换的长整形数; radix:数制,如10表示十进制
输出参数: string:转换后的字符串
返 回 值: 指向string的指针
[解决办法]
先判断符号位,如果是正直接转换,如果是负数则-0x10000
StaticWeight[0]=int(buf[0]*0x100)+buf[1];
StaticWeight[1]=int(buf[2]*0x100)+buf[3];

if((buf[0]&0x80)==0x80)
StaticWeight[0]=StaticWeight[0]-0x10000;
if((buf[2]&0x80)==0x80)
StaticWeight[1]=StaticWeight[1]-0x10000;
edtStatic1-> Text=StaticWeight[0];
edtStatic2-> Text=StaticWeight[1];
[解决办法]
AnsiString strHexValue = "-0x123456 ";
int v = strHexValue.ToInt();
AnsiString带有转换的功能

热点排行