求助字節(jié)讀寫(xiě)模式一個(gè)小問(wèn)題??!

我的程序是這樣 一個(gè)保存時(shí)間的數(shù)組unsigned char table[5]={0x08,0x11,0x24,0x12,0x50,0x45} 即08年11月24日12時(shí)50分45秒 然后把這個(gè)數(shù)組復(fù)制到mCmdParam.ByteWrite.mByteBuffer[i]中 for(i=0;i<6;i++) { mCmdParam.ByteWrite.mByteBuffer[i]=table[i]; } mCmdParam.ByteWrite.mByteCount = i; i = CH375ByteWrite( ); mStopIfError( i ); mCmdParam.ByteWrite.mByteCount = 0; CH375ByteWrite( );

然后用電腦看U盤(pán),全是亂碼,請(qǐng)問(wèn)這是怎么回事????? 我把table[6]中的內(nèi)容改成{J,J,J,J,J,J}后,就能正常顯示出JJJJJJ

如果你新建的文件是.TXT文件的話,那么這個(gè)在文件打開(kāi)的時(shí)候就是亂碼,你應(yīng)該按照ASCII碼的形式寫(xiě)進(jìn)去才能正常顯示,例如顯示1就需要寫(xiě)0X31


那也就是說(shuō)我用兩個(gè)字節(jié)的buffer才能顯示兩個(gè)數(shù)字唄?比如我要顯示01,就要寫(xiě)0x30和0x31到buffer中??


理解正確!


那請(qǐng)問(wèn)能不能幫個(gè)忙,提供一段程序 就是把我說(shuō)的時(shí)間數(shù)組table[6]所保存的數(shù)據(jù),復(fù)制到mCmdParam.ByteWrite.mByteBuffer并正確顯示出來(lái)呢


基本流程是這樣的:從table取出一個(gè)數(shù),把這個(gè)數(shù)分成2部分:高4位和低4位,分別轉(zhuǎn)換為字符即可: k = 0; for( i = 0; i < sizeof( table ); i ++ ) { a = ( table[ i ] >> 4 ) & 0x0F; /* 高4位 */ a = ( a < 10 ) ? ( a + '0' ) : ( a - 0x0A + 'A' ); mCmdParam.ByteWrite.mByteBuffer[ k ] = a; k ++; a = table[ i ] & 0x0F; /* 低4位 */ a = ( a < 10 ) ? ( a + '0' ) : ( a - 0x0A + 'A' ); mCmdParam.ByteWrite.mByteBuffer[ k ] = a; k ++; }


謝謝,請(qǐng)問(wèn)用sprintf可以實(shí)現(xiàn)么? 比如sprintf( mCmdParam.ByteWrite.mByteBuffer, "現(xiàn)在時(shí)間為:%d \xd\xa", table[6] );


您提供的程序執(zhí)行起來(lái)太慢了,6個(gè)數(shù)要存半天,有沒(méi)有快一點(diǎn)的辦法啊


沒(méi)人能回答一下么??很著急啊


可以使用 sprintf( mCmdParam.ByteWrite.mByteBuffer, "現(xiàn)在時(shí)間為:%d \xd\xa", table[6] ); 把數(shù)據(jù)復(fù)制到緩沖區(qū)當(dāng)中去


不好用啊,我寫(xiě)了個(gè)實(shí)驗(yàn)程序 UINT8 a1[] = {21,22,23,24,25,26,27}; i=sprintf( mCmdParam.ByteWrite.mByteBuffer, "現(xiàn)在時(shí)間為:%d \xd\xa", a1[7] ); mCmdParam.ByteWrite.mByteCount = i; CH375ByteWrite( ); mCmdParam.ByteWrite.mByteCount = 0; CH375ByteWrite( ); 將U盤(pán)拿下來(lái)一看,我寫(xiě)進(jìn)去的是 "現(xiàn)在時(shí)間為:31744 " 唉,弄了一天也沒(méi)弄明白,有高手幫忙解決一下么?


1.你的數(shù)組里面沒(méi)有a1[7]這個(gè)數(shù) 2.i=sprintf( mCmdParam.ByteWrite.mByteBuffer, "現(xiàn)在時(shí)間為:%d \xd\xa", (unsigned short)a1[0] );


恩,我明白你的意思,不過(guò)我是想把a(bǔ)1這個(gè)數(shù)組中的6個(gè)數(shù),全部都復(fù)制到 mCmdParam.ByteWrite.mByteBuffer中去 用sprintf只能一次復(fù)制一個(gè),我想問(wèn)的是怎么能一次搞定???


用這個(gè)函數(shù)memcpy(); memcpy(mCmdParam.ByteWrite.mByteBuffer,a1,sizeof (a1))


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频