一个小问题,在线等。 一个char* p里的3456位,存储着一个四位的16进制数,例如:0x1006.我怎么才能把这个数读出来?详细点,呵呵,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int CharToNum(char c){ if(c<='9'&&c>='0') return int(c)-48; if(c<='Z'&&c>='A') return int(c)-55; if(c<='z'&&c>='a') return int(c)-87; return -1;}....int t=0;for(int i=2;i<6;i++){ t*=16; t+=CharToNum(*(p+i));}; 楼上的老兄,具体点好么?关键是char* p里面不仅仅是到第6位就没有了,可能有上千个字节呢 int i =(int)(short int)*(p+3456) 也写错了int i= *(int*)(p+n) int i= *(int*)(p+n) 有符号数usigned int i= *(unsigned int*)(p+n) 无符号数 不是的,在这个char里,不应该出现负数的 char变到int就有可能是负数,只要最位是1 char变到int就有可能是负数,只要最高位是1 char *p1; p1 = &p[2]; >>右移2位,然后用位操作符判断将前4位置0,然后得到的这个<16 的char就是你要的int了 基本上程序是这样的。用socket传送文件,发送方在文件包头加上12个字节,其中3~6位是包的大小。我做的接收方,接受到文件后,要读出文件大小。 rc=recv(fd,bp,cnt,0);上面这句就是接收的语句了。怎么办?传送方加包头的代码是:........................dwLen=0x1006;_xDwordToBuffer(dwLen,&buffer[index]);index+=4;dwLen-=4;...................... 用socket传送文件,发送方在文件包头加上12个字节,其中3~6位是包的大小。靠,字节和位是两个概念,问问题要分清一些,要不然别人都以为问的什么呢字节的话那不很简单嘛,直接itoa不就行了 为老马散分 MFC 循环 求解决方案 求救:如何在已经打开的文件夹中选定一个子文件 请问如何防止低级鼠标钩子处理后的事件再传给其它程序? 如何使用SendMessage发送Tab键按下? 有关斗地主的程序设计与开发 如何调用Dll中的模态对话框!! 怎样把csdn上的网页保存?保存成.asp文件怎么打开? 有分不拿白不拿,对不对? VS2017 小弟我想学网络编程,vc已经有一定的基础,就是没有做过网络方面的项目,请高手指点怎样学习这方面的。 怎样写入二进制信息?
{
if(c<='9'&&c>='0')
return int(c)-48;
if(c<='Z'&&c>='A')
return int(c)-55;
if(c<='z'&&c>='a')
return int(c)-87;
return -1;
}
....
int t=0;
for(int i=2;i<6;i++)
{
t*=16;
t+=CharToNum(*(p+i));
};
关键是char* p里面不仅仅是到第6位就没有了,可能有上千个字节呢
int i= *(int*)(p+n)
usigned int i= *(unsigned int*)(p+n) 无符号数
p1 = &p[2];
用socket传送文件,发送方在文件包头加上12个字节,其中3~6位是包的大小。
我做的接收方,接受到文件后,要读出文件大小。
rc=recv(fd,bp,cnt,0);
上面这句就是接收的语句了。怎么办?
传送方加包头的代码是:
............
............
dwLen=0x1006;
_xDwordToBuffer(dwLen,&buffer[index]);
index+=4;
dwLen-=4;
...........
...........