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

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

perfect_刘



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

5come5帮你背单词 [ landlord /'lændlo:d/ 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帮你背单词 [ warm /wo:m/ a. 温暖的,暖和的,热情的,热心的,保暖的,御寒的;vt. (使)温暖 ]


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



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

5come5帮你背单词 [ reproach /ri'prəut/ vt. & 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帮你背单词 [ capable /'keipəbl/ a. 能干,有能力的,有才能的 ]


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帮你背单词 [ altitude /'æltitju:d/ n. 高度,海拔,(pl.)高处 ]


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



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

5come5帮你背单词 [ pawn /po:n/ n. & v. 典当,抵押 ]


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帮你背单词 [ consider /kən'sidə/ vt. 考虑,细想,体谅,顾及,认为,把…看作;vi. 考虑 ]


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帮你背单词 [ harbour /'ha:bə/ 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帮你背单词 [ public /'pΛblik/ a. 公共的,公众的,公开的;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.011713(s) query 5, Time now is:05-24 01:25, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号