作者jhra790723 (企鹅)
看板C_and_CPP
标题[问题]如何写24位元 2进制转10进制 (以解决 感谢VictorTom)
时间Thu Nov 5 12:44:52 2009
遇到的问题: 我们学过怎样将二进制数字转变成为十进制数字,试写一个程式可以重复的输入一个二进
制整数然後输出他的十进制的相等数值。
输入的时候只能够接受 0 和 1 的输入,其它的输入必须被忽略掉,另外程式必须要最多
可以接受24位元的二进制数字。
note: 在传统的做法上会使用阵列来帮忙,但是目前我们还没有学到阵列,请用条件叙述
以及重复叙述来完成这个工作。
hint: 利用_getch()指令从键盘上读取一个字元,然後判断它是否为0或1,然後进行十进
制的转换工作。
可是... 如果只是输入数字,转成2进制,用很基本的惩法是可以的,但是我不清楚
如何可以使用到24位元,而且只能输入0和1。
希望得到的正确结果 :希望大大们能指点一些关键字。
程式跑出来的错误结果:我有使用while 跟 switch 去跑
但是不知道如何输入2~9让他不显示,总是会跑出乱码
开发平台: visual studio 2008 c++
我不是来求作业完整的答案的,只是某些地方卡住,不知道怎麽说比较好,
目前我学过的就是scanf printf 回圈 条件叙述式
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.135.42.21
※ 编辑: jhra790723 来自: 140.135.42.21 (11/05 12:46)
1F:推 VictorTom:学过shift (<< 与 >>)了没?? 没学过也学过乘法吧?? 11/05 12:53
2F:→ VictorTom:想想看如果输入6, 我会先给你 1, 再给你 1 (变成11), 再 11/05 12:55
3F:→ VictorTom:给你的0 (变成 110也就是6), 输入的过程是否可以shift或 11/05 12:55
4F:→ VictorTom:者乘个二, 就能累加出答案了:) 11/05 12:56
5F:→ VictorTom:不用被24位元迷惑, 一般Win32环境int有32位元, 你去乘去 11/05 12:57
6F:→ VictorTom:加不用担心会爆的. 11/05 12:58
7F:→ VictorTom:读入的字元不是'0'或是'1', 就不要处理继续吃下一个字就 11/05 12:59
8F:→ VictorTom:好了, 看请楚我是用'0'与'1'喔, 字元与数字别搞混了XD 11/05 12:59
9F:→ BaaaSwin:超怀疑你是不是中原电子的= =一模一样欸 11/05 14:07
10F:→ BaaaSwin:while switch case'1' case'0' 11/05 14:09
11F:→ jhra790723:我卡在如何不处理... 是在case那设定吗? 11/05 15:23
12F:推 VictorTom:你是跑回圈吃字元对吧?? 吃到'0'和'1'会做什麽事对吧?? 11/05 15:26
13F:→ VictorTom:那不是'0'也不是'1'就不要做那个"处理"啊?? 写if()也可 11/05 15:27
14F:→ VictorTom:以不写else; 写switch也不用handle所有case啊, 或者用 11/05 15:28
15F:→ VictorTom:default: break; 明确的写出来"不处理"也可以:) 11/05 15:29
16F:→ jhra790723:刚刚想到... 这是用字串写吗? 11/05 15:56
17F:→ jhra790723:不对... 我不会字串呀= = 11/05 16:01
18F:→ jhra790723:不处理是说continue吗? 11/05 16:13
※ 编辑: jhra790723 来自: 140.135.42.21 (11/06 00:39)