A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 葬天 中级黑马   /  2012-10-27 17:59  /  3322 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

不知道能不能实现 ,有思路的介绍一下啊

评分

参与人数 1黑马币 +10 收起 理由
刘芮铭 + 10

查看全部评分

12 个回复

倒序浏览
我知道怎么进行进制之间的转换,但是用八进制计数不是很清楚。
回复 使用道具 举报
什么情况~~
回复 使用道具 举报
有一种方法是:先用一般的方法计数,再将计数器转成八进制。
回复 使用道具 举报

如果一个数是 96 ,我们可以断定它不是八进制数,因为八进制数中不可能出7以上的阿拉伯数字。
但是数字234567你怎么能判定它是八进制数还是10进制数字呀.或者16进制都有可能的.

所以规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制。这就是八进制数的表达方法。 现在,对于同样一个数,比如是100,我们在代码中可以用平常的10进制表达,例如在变量初始化时:

int a = 100;

我们也可以这样写:

int a = 0144; //0144是八进制的100;一个10进制数如何转成8进制。

千万记住,用八进制表达时,你不能少了最前的那个0。否则计算机会通通当成10进制。
用于表达字符的“转义符”表达法,使用八进制数时,却不能使用加0.

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报

对于java中实现八进制计数:应该先转换成二进制  然后三位一算进而就可以转换成八进制来计数了
在java中:
八进制前加 0 用来区别
而十六制前加 0x 用来去别

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
葬天 中级黑马 2012-10-29 23:16:38
7#
感谢楼上各位 耐心解答

不过
我想问的是
实现八进制计数器的方法
例如
1+7 = 10
11+ 7 = 20
71+7 = 100
。。。
不是进位转换

回复 使用道具 举报
xuchulong1 来自手机 中级黑马 2012-10-30 00:31:05
8#
葬天 发表于 2012-10-29 23:16
感谢楼上各位 耐心解答

不过

首先你之前的回题确实很难理解,这里的问题也很无厘头。
但可能对于进制这个我想我这里说一下你会有个比较清晰的理解
不管是几进制,内存里面存放的都是二进制,在C里面你可以控制它用进制输,也就是8它会输出10,java里有没有这样的控制可以查下,如果没有,你可以自已写
先用一个sum来接收你的最终值
int sum = 19;
sum%8 =个位;
sum=sum/8;
sum%8=十位;
以此类推,你可以用一个循环控制下

不过个人感觉java应该会封装的方法的
回复 使用道具 举报
葬天 中级黑马 2012-10-30 09:38:01
9#
xuchulong1 发表于 2012-10-30 00:31
首先你之前的回题确实很难理解,这里的问题也很无厘头。
但可能对于进制这个我想我这里说一下你会有个比 ...

我的 提的问题 之前确实 过于简单

你给出的 思路
我理解 还是
在进行 10进制转8进制 运算
我想得到一个 八进制 计数器
例如
1+7 = 10
11+ 7 = 20
71+7 = 100
。。。
这个 例子 我描述的 也不清楚吗

回复 使用道具 举报
葬天 发表于 2012-10-30 09:38
我的 提的问题 之前确实 过于简单

你给出的 思路

这个就是我说你无厘头的原因呀,譬如 int a = 1+7,当你这个式子写好,运行到这的时候,编译器会去开辟一个空间 存放 a  空间存放的是   0000000000000111,是2进制的,你却希望它是0000000000001010这样的,除非你在运算之前做转换,或者运算之后做转换,但是这样的转换会给后续的运算带来很大的麻烦。
你又不希望进行进制的转换,那就是这样的  你输出的时候将  0000000000000111  输出为10,但你又说这不是你的意思。
退一万步,你说要让  1+7 = 10; 那这个10你如果不打印你是怎么能看得到的??它放在内存里,想要看到  你需要。
虽然我们知道 0000000000000111这个二进制在八进制里就是10,我就让它打印10,但是这需要java去提供这个方法。
你内存存放的东西,和打印出来的东西(只是一种表现形式)混淆的这么厉害,怎么让人回答呢??

最后:
11+7 = 18 转换成8进制应该是 22
71+7 = 80 转换成8进制应该是120
回复 使用道具 举报
葬天 中级黑马 2012-10-31 20:56:41
11#
xuchulong1 发表于 2012-10-31 16:38
这个就是我说你无厘头的原因呀,譬如 int a = 1+7,当你这个式子写好,运行到这的时候,编译器会去开辟一 ...

0000000000000111这个二进制在八进制里就是10
你说“虽然我们知道”   但除了你, 估计大家都不知道
元芳 ,你怎么看?

请问这个二进制 在八进制中 怎么会是10的呢
回复 使用道具 举报
葬天 发表于 2012-10-31 20:56
0000000000000111这个二进制在八进制里就是10
你说“虽然我们知道”   但除了你, 估计大家都不知道
元 ...

囧,这个确实没有注意,但后面的内存里面存放的那块确实是这样的,既然你排斥去理清思路,其实我也没什么好说的了
回复 使用道具 举报
葬天 中级黑马 2012-10-31 21:42:14
13#
xuchulong1 发表于 2012-10-31 21:35
囧,这个确实没有注意,但后面的内存里面存放的那块确实是这样的,既然你排斥去理清思路,其实我也没什么 ...

恩 还是要谢谢你
可能 我没有表达清楚吧
八进制 计数 就是 说
逢八进一
无所谓 要不要 打印出结果
只要 是 实现 八进制计数就可以
或许你 的解释 我没有理解吧  

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马