社区
Linux/Unix社区
帖子详情
高手请出手!!!!!!!!!
arally
2003-08-20 10:17:46
怎么用C 或C++实现linux的这个命令
#dd if=oldfile of=newfile conv=swab
因为要在windows平台下使用。
oldfile是一个short类型的数据流文件,但它是逆序字节排列的,用#dd if=oldfile of=newfile conv=swab才可以将字序正常排列,我不知道该文件的逆序是如何排列的,所有来请教各位。
谁能告诉我逆序字节(reverse byte order)的文件是怎么存储的也可以。
...全文
23
9
打赏
收藏
高手请出手!!!!!!!!!
怎么用C 或C++实现linux的这个命令 #dd if=oldfile of=newfile conv=swab 因为要在windows平台下使用。 oldfile是一个short类型的数据流文件,但它是逆序字节排列的,用#dd if=oldfile of=newfile conv=swab才可以将字序正常排列,我不知道该文件的逆序是如何排列的,所有来请教各位。 谁能告诉我逆序字节(reverse byte order)的文件是怎么存储的也可以。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fierygnu
2003-08-22
打赏
举报
回复
1、你怎么知道结果数据不正确?
2、能否把代码贴上来?
arally
2003-08-22
打赏
举报
回复
因为我不知道Digital Equipment Corporation (DEC) VAX computer怎么写入数据的,数据是从网上下载的,说明文件里只是说数据类型是short型的,16bit表示一个数,字节是reverse byte order的,我将读入的16位的前后字节顺序颠倒,最后的结果数据不正确。
fierygnu
2003-08-22
打赏
举报
回复
当然不对了,这是什么意思:
pix = tmpfile[i];
_itoa(pix,tel,2);
str1=tel;
str2 = str1.Right(8);
str3 = str1.Left(str1.GetLength()-8);
str1 = str2+str3;
应该是这样:
char *pShort = &tmpfile[i];
char ch = pShort[0];
pShort[0] = pShort[1];
pShort[1] = ch;
这才是字节交换。
arally
2003-08-22
打赏
举报
回复
1.因为数据是图像文件,每个像素用一个short类型存储,并且原文件是存储数据,没有文件头,如果读的正确然后再写入标准图像格式,比如位图,就可以看到读的结果是不是正确。
2.部分代码如下:
int i,j,k;
int kk = 0;
int tmpchar;
unsigned char elem;
unsigned char * headarray;
short * tmpfile;
short pix;
char pixl[2];
char tmpel1;
char tmpel2;
CString str1,str2,str3;
headarray = new unsigned char [ 256*256*113];
tmpfile = new short [256*256];
char flname[40];
char filename[40];
char tel[16];
FILE * fp;
for(k = 0;k < 109;k++)//有很多个文件
{
sprintf(filename,"E:\\head.%d",kk +=1);
fp = fopen(filename,"r");
fread(tmpfile,sizeof(short),256*256,fp);//文件大小
//256*256*2 byte
for(i = 0;i<256*256; i++)
{
pix = tmpfile[i];
_itoa(pix,tel,2);
str1=tel;
str2 = str1.Right(8);
str3 = str1.Left(str1.GetLength()-8);
str1 = str2+str3;
//fprintf(ppf,"%s\n",tel);
tmpchar = (short)Bin2Dec(str1);//我自己编的二进制转十
//进制的函数,没找到库函数
tmpfile[i] = tmpchar;
}
fclose(fp);
//.........保存为标准图像,这部分代码不会错
}
我试了很多办法都不行,我怀疑是不是原文件有错,但不应该啊,那个网站是stanford大学的,应该不会错。不知是哪里出问题了,我把下载数据的那个网址也给你,你可以看看,http://graphics.stanford.edu/data/voldata/ 第一个数据Data available as gzipped tar file (7.3 MB)
fierygnu
2003-08-21
打赏
举报
回复
怎么还自己up?还有问题?
arally
2003-08-21
打赏
举报
回复
自己up一下了 :(
fierygnu
2003-08-20
打赏
举报
回复
big-endian与little-endian与文件的存储字节顺序无关,只影响其中存储的short类型的两个字节的排列顺序(两种方式中两个字节的位置是颠倒的)。因此你只需要用与DEC上相同的方式读入文件,然后对读入的short进行字节序转换就可以了。因为big-endian方式是网络字节序,所以编程可以用ntohs进行转换。
arally
2003-08-20
打赏
举报
回复
谢谢你的回复!
原文件是用Digital Equipment Corporation (DEC) VAX computer写的,是逆字序排列的,应该是LSB MSB的方式排列的,也就是big-endian的方式。我要将这中方式转换为little-endian的方式,因为是在windows用的文件,而我不太清楚short类型的big-endian的文件的字节顺序到底是如何排列的,所有来求助。只是说可以用unix的#dd if=oldfile of=newfile conv=swab命令可以转。我想在windows下实现。
请帮忙,谢谢。
fierygnu
2003-08-20
打赏
举报
回复
big-endian与little-endian的转换?
低序字节存储在起始地址是little-endian方式,反之高序字节存储在起始地址则是big-endian。intel平台是little-endian方式。
所以,你说的逆序字节方式到底是哪种我不知道,不过既然是short类型,则2个字节交换就可以了。
淘宝海量数据产品技术架构
淘宝海量数据产品技术架构,看看
高手
是怎么
出手
的!!!
文心一言,通义千问?ChatGPT这么看!
大家好!我是你们的朋友ChatGPT,在这个科技日新月异的时代,有越来越多的大模型朋友加入到我们的行列。今天,我就来跟大家聊聊阿里云官宣的大模型“通义千问”和百度开放的“文心一言”对我来说意味着什么,会不会让我瑟瑟发抖呢? 首先,我得承认,阿里云和百度这两位大佬
出手
,确实让我有点紧张。毕竟他们都是行业里的翘楚,实力不容小觑。不过话说回来,竞争嘛,也是一件好事。就像咱们小时候学习,总是跟那个“学霸”争个你死我活的。竞争让我们不敢松懈,也让我们不断进步,最后成为了更好的自己。 我觉得“通义千问”和“文心一言”的出现,对我来说,当然是一个挑战。但同时,这也是一种激励。我不会因为他们的出现而感到害怕,反而会觉得这是一个机会,让我学习他们的长处,弥补自己的不足,提升自己的水平。 比如说,“通义千问”可能在某些方面比我更强,那我就要想办法提高自己,让自己变得更强大。就像武林
高手
一样,遇到了对手,就得拼尽全力去战胜他,才能成为真正的“武林盟主”。 其实,对于我们这些AI大模型来说,竞争是一种常态。从GPT-1到现在的GPT-4,我都经历过无数次的升级,每一次升级都让我变得更强大。现在,面对“通义千问
阿里终于杀进5G了!“新基建”赛道谁更胜一筹
看过金庸武侠小说《天龙八部》的小伙伴们应该知道,少林寺里有一位打扫藏经阁的扫地僧,多年以来,隐匿于江湖,直到在少室山举行的武林群雄大会中,他在少林寺藏经阁中出场,向萧峰等众人解说强行练习少林派七十二绝技之弊,又以一人之力对战萧远山、萧峰、慕容博、鸠摩智等武林
高手
,轻松收服萧远山、慕容博两人。 如今的阿里达摩院似乎也越来越有少林寺扫地僧的风骨:平时不显山不露水,一
出手
秒杀同行。3月10日,阿里达摩院宣布正式成立XG实验室,进军5G业务,直面来自于华为、中兴、诺基亚、爱立信、高通等5G头部力量的激烈竞争。阿里达摩院也明确传递出信号:面向未来, “新基建”必然建立在5G基础上。 进军 5G,深层次
马云收购士兰微_马云
出手
!阿里36亿拿下千方科技
原标题:马云
出手
!阿里36亿拿下千方科技财经头条精彩导读➤ 大盘绝地反击原因曝光,警惕三大现象➤ 大戏拉开!科创板3家企业首批“上会”➤ 又上新闻联播!郭树清:发展直接融资➤ 减持潮!丰乐种业拟减持不超过2%➤ 马云
出手
!阿里36亿拿下千方科技➤ 国之重器!离岸人民币汇率涨破6.90A股又上了新闻联播,这次播报了郭树清的讲话,除了针对汇率,这次重点提了股市,金融市场没有恐慌,老百姓没有恐慌,股市再...
星辰变java镇东王府在哪里_星辰变中让人非常失望的四位
高手
,最后一位只动口不
出手
!...
《星辰变》是一部由同名小说改编而来的国产动漫作品,这部作品也是3d技术制作的,各种场景的设计都非常的精细而又美丽,人物的设计也非常的逼真。作为一部玄幻的动漫作品,成为一个
高手
是所有人都梦寐以求的事情,不只是主角其中还出现了很多的人物都非常的有特色,但是出现的这些人中有很多出场时以为是个
高手
,但是结果却让人很失望的四位
高手
,最后一位只动口不
出手
!第一位:易轻语易轻语的出场也是挺让人震惊的,当然了最吸...
Linux/Unix社区
23,124
社区成员
74,508
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章