| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 280 人关注过本帖
标题:各位大哥 sizenof问题?
只看楼主 加入收藏
堕落之地
Rank: 1
等 级:新手上路
帖 子:57
专家分:5
注 册:2019-3-11
结帖率:100%
  已结贴   问题点数:5  回复次数:10   
各位大哥 sizenof问题?
怎么产生这么奇怪数字?
附件: 您没有浏览附件的权限,请 登录注册
2019-03-14 23:20
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:188
帖 子:6510
专家分:28754
注 册:2014-5-20
  得分:0 
编程免不了测试,测试免不了代码?
2019-03-15 04:59
堕落之地
Rank: 1
等 级:新手上路
帖 子:57
专家分:5
注 册:2019-3-11
  得分:0 
回复 2楼 吹水佬
什么意思啊 大佬

2019-03-15 13:25
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:300
帖 子:6297
专家分:36591
注 册:2011-1-18
  得分:0 
以下是引用堕落之地在2019-3-15 13:25:16的发言:

什么意思啊 大佬
意思很明显
你不贴代码,而是贴图。我猜有三种可能:
1。自己闲得慌。CTRL+C/CTRL+V 就能搞定的事,要先去截屏,然后……
2。觉得别人视力太好是浪费。干干净净的代码不看,着丑图,猜 这个是大写的I还是小写的l,这个是英文空格还是中文全角……
3。觉得别人时间太多,让别人为了回答你的破问题还得先费时间照着你的破图敲出你的原始代码。
2019-03-15 14:21
堕落之地
Rank: 1
等 级:新手上路
帖 子:57
专家分:5
注 册:2019-3-11
  得分:0 
回复 4楼 rjsp
...
2019-03-15 15:11
堕落之地
Rank: 1
等 级:新手上路
帖 子:57
专家分:5
注 册:2019-3-11
  得分:0 
回复 4楼 rjsp
#include<stdio.h>
unsigned int reverse_bits(unsigned int value){
    int c=sizeof(value);
    char a[c];
    int i=0,n=0,m=0,t=0,h=0;
    while(h<c){
        if(value&1)
            a[i]=1;
            else
            a[i]=0;
        i++;
        value>>=1;
        h++;
    }
    for(t=0;t<c;t++){
        printf("%d ",a[t]);
        t++;
    }
    printf("\n");
    while(n<c/2){
        a[c-n-1]=a[n];
        n++;
    }
    for(m=0;m<c;m++){
        printf("%d ",a[m]);
        m++;
    }
    printf("\n");
    return value;
}
int main(){
    unsigned int a=5,b;
    b=reverse_bits(a);
    printf("%d\n",b);
}
2019-03-15 15:11
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:300
帖 子:6297
专家分:36591
注 册:2011-1-18
  得分:2 
执行完 int c=sizeof(value); 这一句试试

2019-03-15 16:14
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:300
帖 子:6297
专家分:36591
注 册:2011-1-18
  得分:0 
愣没看懂你这代码想干什么

int c=sizeof(value); 我猜是 size_t c = sizeof(value) * CHAR_BIT;

    for(t=0;t<c;t++){
        printf("%d ",a[t]);
        t++;
    } 这里两个 t++,为什么不放一起?

while(n<c/2){
        a[c-n-1]=a[n];
        n++;
    } 用前一半给后一半赋值?

    for(m=0;m<c;m++){
        printf("%d ",a[m]);
        m++;
    } 同样 m++ 有两个。
2019-03-15 16:26
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:300
帖 子:6297
专家分:36591
注 册:2011-1-18
  得分:3 
看看别人怎么写 http://blog.jobbole.com/70993/
2019-03-15 16:40
堕落之地
Rank: 1
等 级:新手上路
帖 子:57
专家分:5
注 册:2019-3-11
  得分:0 
回复 7楼 rjsp
不行的。  在别的代码中可以表达出正确的值,
2019-03-15 16:53







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.258586 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved