我获取U盘的大小 数据长度是8,是对的 然后读后面的数据依次是:0,1,244,255,0,0,2,0 这怎么计算呀? 谢谢了
用十六进制表示,然后计算. 前4 个字节以高字节在前组成的双字数据是USB存储设备的总扇区数,后4 个字节以高字节在前组成的双字数据是每个扇区的字节数,两个数据相乘的结果就是以字节为单位的USB 存储设备的总容量。 具体的计算公式:
printf( "%3d MB\n", (UINT16)( ( (UINT32)( buf[1] ) << 16 | (UINT16)( buf[2] ) << 8 | buf[3] ) >> 11 ) );
你说的我在资料上看到了 可是我转了和不转有什么区别 那几个是前四个字节? 那几个又是后四个字节? 0001 F6FF 0000 0200 高手帮我计算一下吧
是00 01 F4 FF 00 00 02 00 你程序中读出来的DATA_BUFFER[1],DATA_BUFFER[2],DATA_BUFFER[3],DATA_BUFFER[4]就是前四个字节00 01 F4 FF,DATA_BUFFER[5],DATA_BUFFER[6],DATA_BUFFER[7],DATA_BUFFER[8]是后四个字节.02表示每扇区有512字节. 总扇区数为0x0001F4FF,总的字节数=总扇区数乘以每扇区字节数/1024/1024(MB). 容量为62M
谢谢! 有问题再请教