| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5033 人关注过本帖
标题:任意进制数之间的转换
只看楼主 加入收藏
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:0 
你的代码从使用者的角度出发。看不出是啥?输出结果就是:4R。没了。至少不完善,有待改进。
2018-05-21 11:08
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
回复 19楼 自学的数学
顺便 我认为有必要举例子说明一下怎么反驳我

比如我说 十进制要依赖*/%(好像还有+ 不过不重要) 这样的操作才能转换到其他进制
你反驳这个观点 需要做的事情是 证明 十进制不依赖这些操作也能转换到其他进制
证明方式有很多了 简单有力的是直接拍一个反例 或者其他方式

顺便我强调一下 我在描述 其他进制转换为十进制 十进制转换为其他进制
是在回复你的提问

需要转换的进制数    转换后的进制数
2进制数            2进制数
3进制数            3进制数
4进制数            4进制数
5进制数            5进制数
6进制数            6进制数
7进制数            7进制数
8进制数            8进制数
9进制数            9进制数
10进制数           10进制数
11进制数           11进制数
12进制数           12进制数
。。。            。。。
直接从左边的进制数转换到右边的进制数(同进制数除外),中间不用别的进制数做桥梁起渡过的作用。


这是一个编程实现范畴的提问
我的回复也是在编程实现的范畴内回复

如果说到 使用程序
中间进制本来就是透明 不可见的
用户无法感知
不管是你的代码 还是我的代码
对用户来说 都是 输入进制A 指定进制B 得到结果
没区别

https://zh.
2018-05-21 11:10
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
回复 21楼 自学的数学
几句交互提示
所以你说的全部内容只是在说 交互没做好??

你不是在聊进制转换的思想吗?
你不是在说编程的想法吗

几句交互和这些思想有关系么?
然后你通过我交互没做好这一点 来反驳我说的 进制转换的思想??
等等 这个逻辑我理解不了

https://zh.
2018-05-21 11:12
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
其实,用char形式输出表示就算是无符号最多也只能支持256个(其中还不包括不可显示的)~

这样

对进制每一个位都用一个十进制数表示感觉还更直观

例如256进制(假设存在的话),一个6位数可以这样表示:

12,34,56,78,127,255

中间用逗号隔开,表示对应的是256进制中的第几位

说抽象一点,其实只要一张对应的进制映射表就可以表达了(当然,能不能看懂那数字是什么就另外说了)~

补充一点,2进制转8进制,16进制可以直接转,不一定要通过10进制作为桥梁

其实10进制的123456相当于100进制的12,34,56,相当于1000进制的123,456,相当于10000000进制的123456

了解一下就可以了~



[此贴子已经被作者于2018-5-21 11:20编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-05-21 11:17
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
回复 21楼 自学的数学
我的代码是对照你的代码里面的
程序代码:
int main(){
    string str1, str2;
    long d1, d2;
    while (cin >> str1 >> d1 >> d2){
        conversion(str1, str2,d1, d2);
        cout << str2 << endl;
    }
    return 0;
}

写的
你反驳我这段 4R
和反驳自己那段没区别

https://zh.
2018-05-21 11:21
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
回复 24楼 九转星河
当然可以这样约定一个表示数值的新方式
不过这个做法和本贴讨论关系不大了
这里是在做进制转换
就算考虑新数值表示方式
新数值的表示方式也需要兼容现在的进制转换

https://zh.
2018-05-21 11:23
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 26楼 lin5161678
所以说,关键还是需要一个进制转换的方法,嗯,这样说,又回到原点了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-05-21 11:32
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
回复 27楼 九转星河
进制转换的方法有的
我和楼主都是使用一样的进制转换的方法
现在主要问题是 这个方法有限定使用范围
但楼主在盲目扩大适用范围
这就问题很大了

https://zh.
2018-05-21 11:38
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:0 
所以,代码还有待完善,希望脱离过渡用的十进制数。
2018-05-21 11:38
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:4 
PS一下:应该这样说,进制转换能不能不用10进制过渡其实是依赖于进制之间的关系的~

例如2进制转8进制相当于1:log(2,8)的关系,也就是1:3,就是说8进制等于2进制的3个数位~

n进制转m进制就相当于1:log(n,m)的关系,就是说m进制等于n进制的log(n,m)的数位关系,但实际上数位表达只能是整数,所以要把原数转换成10进制才能得到对应的整数关系~

实际上,如果是小数之间的转换就不存在对应的映射表了,直接用log(n,m)就可以完成转换~


[此贴子已经被作者于2018-5-21 12:48编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-05-21 11:53
快速回复:任意进制数之间的转换
数据加载中...
 
   



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

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