我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: c问题共同讨论一下~ 隐藏签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

perfect_刘



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 960
威望: 0
浮云: 1105
在线等级:
注册时间: 2005-11-20
最后登陆: 2009-05-08

5come5帮你背单词 [ goal /gəul/ n. 目标,目的地,球门,进球得分 ]


c问题共同讨论一下~

有8个字节,每个字节第一位是空的,没有用,现在要将每个字节的这第一位用起来,
就是将每个字节左移一位,后面字节又跟着补上来,即第一个字节左移一位,第二个就左移两位....第八个字节左移八位.
这样8个字节的存储就变成了7个字节,省出一个字节.

写一函数实现这一功能

void saveMemory(char* source,char* dest)
{
    //source为8个字节的输入参数,dest变成了7个字节的输出参数
}

做出来了,但是感觉有点复杂
希望高人们赐教
where are you?? please~~
顶端 Posted: 2008-02-23 16:52 | [楼 主]
zhoubaozhou





性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 696
威望: 0
浮云: 1082
在线等级:
注册时间: 2007-03-13
最后登陆: 2023-01-26

5come5帮你背单词 [ incorrect /inkə'rekt/ a. 不正确的,错误的 ]


memcpy这个函数就可以实现你要的功能了~~
这样做的意义好像不是很大,编译器会自动对齐的,像7个字节的会自动对齐到8个字节,这样可以优化效率.
hello,world
顶端 Posted: 2008-02-23 17:00 | [1 楼]
perfect_刘



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 960
威望: 0
浮云: 1105
在线等级:
注册时间: 2005-11-20
最后登陆: 2009-05-08

5come5帮你背单词 [ tar /ta:/ n. 焦油,柏油 ]


我没有理解你的意思
我的意思是
比如 一个8字节的串7f-7f-7f-7f-7f-7f-7f-7f
运算后得到ff-ff-ff-ff-ff-ff-ff
十六进制表示
where are you?? please~~
顶端 Posted: 2008-02-23 17:06 | [2 楼]
zhoubaozhou





性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 696
威望: 0
浮云: 1082
在线等级:
注册时间: 2007-03-13
最后登陆: 2023-01-26

5come5帮你背单词 [ react /ri'ækt/ vi. 反应,起作用,有影响,反抗 ]


Quote:
引用第2楼perfect_刘于2008-02-23 17:06发表的  :
我没有理解你的意思
我的意思是
比如 一个8字节的串7f-7f-7f-7f-7f-7f-7f-7f
运算后得到ff-ff-ff-ff-ff-ff-ff
十六进制表示


用移位来实现,应该效率很高的
hello,world
顶端 Posted: 2008-02-23 17:12 | [3 楼]
zhoubaozhou





性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 696
威望: 0
浮云: 1082
在线等级:
注册时间: 2007-03-13
最后登陆: 2023-01-26

5come5帮你背单词 [ govern /'gΛvən/ v. 统治,管理,支配,决定 ]


不用移位也可以直接将数据搬过去吗~每次搬7bit
hello,world
顶端 Posted: 2008-02-23 17:13 | [4 楼]
perfect_刘



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 960
威望: 0
浮云: 1105
在线等级:
注册时间: 2005-11-20
最后登陆: 2009-05-08

5come5帮你背单词 [ scenic /'si:nik/ a. 风景的,布景的 ]


Quote:
引用第3楼zhoubaozhou于2008-02-23 17:12发表的  :


用移位来实现,应该效率很高的


呵呵 是每个byte中的第一个bit没有用 是移位
就是想见识下你的高招了~
where are you?? please~~
顶端 Posted: 2008-02-23 17:14 | [5 楼]
perfect_刘



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 960
威望: 0
浮云: 1105
在线等级:
注册时间: 2005-11-20
最后登陆: 2009-05-08

5come5帮你背单词 [ conflict /'konflikt, kən'flikt/ n. 冲突,斗争,争执;v. 抵触,冲突 ]


Quote:
引用第4楼zhoubaozhou于2008-02-23 17:13发表的  :
不用移位也可以直接将数据搬过去吗~每次搬7bit

怎么个搬法
我就是不晓得
应该不能位访问吧
where are you?? please~~
顶端 Posted: 2008-02-23 17:17 | [6 楼]
zhoubaozhou





性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 696
威望: 0
浮云: 1082
在线等级:
注册时间: 2007-03-13
最后登陆: 2023-01-26

5come5帮你背单词 [ intelligence /in'telid3əns/ n. 智力,理解力,情报,消息 ]


Quote:
引用第6楼perfect_刘于2008-02-23 17:17发表的  :

怎么个搬法
我就是不晓得
应该不能位访问吧


用64位的,将它每7个bit每7个bit搬进去就可以了吗

long long tmp;

tmp |= ((k&0x7f)<<(pointer));

GCC的语法
hello,world
顶端 Posted: 2008-02-23 20:08 | [7 楼]
perfect_刘



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 960
威望: 0
浮云: 1105
在线等级:
注册时间: 2005-11-20
最后登陆: 2009-05-08

5come5帮你背单词 [ moon /mu:n/ n. 月亮,月球,月光,卫星 ]


Quote:
引用第7楼zhoubaozhou于2008-02-23 20:08发表的  :


用64位的,将它每7个bit每7个bit搬进去就可以了吗

long long tmp;
.......

恩 比较简单
谢了
where are you?? please~~
顶端 Posted: 2008-02-23 22:58 | [8 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.009109(s) query 5, Time now is:11-22 11:09, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号