二进制的一道题
某中学的高一年级有5个班,每个班最多有40位学生,给高一年级学生进行编码,形式为英文字符S加若干位二进制数.要求用二进制数分别表示班级编码和学生编码,并尽可能减少编码长度...
某中学的高一年级有5个班,每个班最多有40位学生,给高一年级学生进行编码,形式为英文字符S加若干位二进制数.要求用二进制数分别表示班级编码和学生编码,并尽可能减少编码长度.请问以下分配方案中正确的是( )
A.用2位二进制数记录班级编码,5位二进制数记录学生编码
B.用3位二进制数记录班级编码,5位二进制数记录学生编码
C.用3位二进制数记录班级编码,6位二进制数记录学生编码
D.用4位二进制数记录班级编码,5位二进制数记录学生编码 展开
A.用2位二进制数记录班级编码,5位二进制数记录学生编码
B.用3位二进制数记录班级编码,5位二进制数记录学生编码
C.用3位二进制数记录班级编码,6位二进制数记录学生编码
D.用4位二进制数记录班级编码,5位二进制数记录学生编码 展开
2011-06-29
展开全部
C.用3位二进制数记录班级编码,6位二进制数记录学生编码
5个班级要用3位二进制编码,共有8种表现方式(2位二进制编码有4种表现方式)
40个学生要用6位二进制编码,共有64种表现方式(5位二进制编码有32种表现方式)
N 位二进制编码的表现方式,就好给你0和1两个数,让你组合成一个 N 位数的数列,有多少种组合方法就有多少种表现方式,如一个两位的二进制编码,有
[ 0 0 ] [ 0 1 ] [ 1 0 ] [1 1 ]
4种组合方式(表现方式),无法满足题目中5个班级(要有5位)的要求,所以我们只能再加一位,以满足题意。这时便有了
[ 0 0 0 ] [ 0 0 1 ] [ 0 1 0 ] [ 0 1 1 ] [ 1 0 0 ] [ 1 0 1 ] [ 1 1 0 ] [ 1 1 1 ]
八种组合方式(表现方式),但这里我们只用到5位,制下的三位只能白白浪费。
40个学生就意味着至少要四十种表现方式,5位的表现方式共有32 ( 2的5次方 ) 种表现形式,无法达到题目要求,我们只能再增加一位,用6位64(2的6次方)种表现方式来表现40个学生,以满足题目要求。。。。
5个班级要用3位二进制编码,共有8种表现方式(2位二进制编码有4种表现方式)
40个学生要用6位二进制编码,共有64种表现方式(5位二进制编码有32种表现方式)
N 位二进制编码的表现方式,就好给你0和1两个数,让你组合成一个 N 位数的数列,有多少种组合方法就有多少种表现方式,如一个两位的二进制编码,有
[ 0 0 ] [ 0 1 ] [ 1 0 ] [1 1 ]
4种组合方式(表现方式),无法满足题目中5个班级(要有5位)的要求,所以我们只能再加一位,以满足题意。这时便有了
[ 0 0 0 ] [ 0 0 1 ] [ 0 1 0 ] [ 0 1 1 ] [ 1 0 0 ] [ 1 0 1 ] [ 1 1 0 ] [ 1 1 1 ]
八种组合方式(表现方式),但这里我们只用到5位,制下的三位只能白白浪费。
40个学生就意味着至少要四十种表现方式,5位的表现方式共有32 ( 2的5次方 ) 种表现形式,无法达到题目要求,我们只能再增加一位,用6位64(2的6次方)种表现方式来表现40个学生,以满足题目要求。。。。
展开全部
我觉得应该选C吧,首先5个班至少要大于等于5的二进制来表示,而两位二进制数只能表示4,于是需要三位的二进制数即8表示。
同理,40也需要大于等于40的二进制数表示,但是5为二进制数只能表示32,于是要用到6位二进制数表示。
这样表示虽然有一些数没有使用,但是这样的表示方式才能完整的表示要求的班级学生编号。
希望我的回答对您有帮助。
同理,40也需要大于等于40的二进制数表示,但是5为二进制数只能表示32,于是要用到6位二进制数表示。
这样表示虽然有一些数没有使用,但是这样的表示方式才能完整的表示要求的班级学生编号。
希望我的回答对您有帮助。
追问
为什么两位二进制数只能表示4
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C.用3位二进制数记录班级编码,6位二进制数记录学生编码
5个班级 至少是 3位 共8中方式
40个学生 至少是 6为 64 中方式
5个班级 至少是 3位 共8中方式
40个学生 至少是 6为 64 中方式
更多追问追答
追问
为什么5个班级 至少是 3位 共8中方式
40个学生 至少是 6为 64 中方式
追答
排列组合问题:
二进制 每位 有两种状态 1 和 0
要组合出 5 中状态 需要 3位, 2*2*2=8; 如果两位的话 2*2 =4 不满足
40个学生 至少是 6为 64 和上面的 同理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void binaryIO(char* file, int n)
{ Node t;
ifstream in(file);
for(int i=0;i<n;i++)
{ in.read((char*)&t.c,sizeof(char));
in.read((char*)&t.t,sizeof(short));
in.read((char*)&t.n,sizeof(int));
cout<<i+1<<": "<<t.c<<" "<<t.t<<" "<<t.n<<endl;
}
}
{ Node t;
ifstream in(file);
for(int i=0;i<n;i++)
{ in.read((char*)&t.c,sizeof(char));
in.read((char*)&t.t,sizeof(short));
in.read((char*)&t.n,sizeof(int));
cout<<i+1<<": "<<t.c<<" "<<t.t<<" "<<t.n<<endl;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询