随便一个整数 ,比如说1014,569874先把他们转成16进制3F6,8B212然后不足8个字符的从头部开始填充0000003F6,0008B212然后每两个字符分别存入到byte[4]里达到byte[]={0xf6,0x03,0x00,0x00},byte[]={0x12,0xB2,0x08,0x00}字节数组里都要求是整数 10进制16进制都行

解决方案 »

  1.   

    将整数转换为字符串CString,然后用CString的InsertAt实现从头填0
    至于后面的每两个字符分别存入到byte[4]里,这论坛上有很多答案的,给个链接:
    http://topic.csdn.net/u/20101224/15/fedb81bb-daf1-47a3-9691-c70f4628c0b3.html
      

  2.   

    CString::Format(_T("0x%08x"),...);先格式化为16进制的字符串
      

  3.   

    先用CString的Format(_T("0x%08x"),...)将整数转换为字符串,然后循环用CString的InsertAt实现从头填0
      

  4.   

    可以这么做:int a = 1014;
    char byte[4];
    // 低字节在前
    byte[3] = (aa >> 24) & 0xff;
    byte[2] = (aa >> 16) & 0xff;
    byte[1] = (aa >> 8) & 0xff;
    byte[0] = aa & 0xff;
    // 如果是intel cpu直接可以这样
    memcpy((void *)byte, (void *)&a, sizeof(a));
      

  5.   

    首先把字符串转换为数组存储,看你发出来的数据,应该是按字节显示的吧,那就一个字节就为数组的一个数值;
    至于如何将字符串转换为数组,网上代码很多,提供思路如下:
    设置两个数分别存储字节的高位和低位,用个循环依次取出一个字符来,遇到空格就继续寻找下一个字符,第一个为高位,第二个为低位,将两个这样高位左移4位再和低位与运算,就得到一个字节,以此类推,直到字符查找结束
    CString -> char*#include <atlbase.h>USES_CONVERSION;CString str(_T("...."));
    char* pbuf = T2A(str);
      

  6.   

    jwybobo2007
     
    (当爸爸了!) 你的方法不对呀byte[]={-10,03,00,00}第一个值应该是F7呀
      

  7.   

    先atoi
    再sprintf( "%.Nd" ),想要多少位,就改那个N