十进制转化为负二进制

本文介绍了如何将十进制数转换为负二进制数,包括转换原理和具体实现过程,涉及数值计算和位运算。并提供了一个示例,解释了-13的负二进制表示方法。
摘要由CSDN通过智能技术生成

奇怪的电脑

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)

Total Submission(s) : 21   Accepted Submission(s) : 14

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

易凯与他的小伙伴们有一个伟大的构想: 他们要自己制造一台计算机。为了显示这台计算机的与众不同, 他们决定让这台计算机使用 -2 进制。 他们为自己的创意而骄傲,因为在这台计算机里,不需要符号位就可以表示所有整数。
众所周知,一个数字的值是它各位的数值与该位所对应的基数幂次的乘积和。在-2 进制中,从右往左各位所对应的基数幂次分别为 1,-2,4,-8,16,-32,...因此,1,2,3...这些正整数对应的-2 进制数分别为 1,110,111,100,101,11010,11011,11000,11001...
在-2 进制中,负数同样是用 0 与 1 组成的字符串表示,不过在这里符号位是多余的了。 -1 以及比它小的负整数对应的-2 进制数为 11,10,1101,1100,1111...
请你帮助易凯与他的小伙伴们完成常用整数与它们所对应的-2 进制整数之间的转换。
这些数的取值范围在区间[-2*10^9,2*10^9]内。

输入:-13
输出说明:
从右往左计算这个-2 进制数所对应的值:
1*1 + 1*(-2) + 1*4 + 0*(-8) +1*16 + 1*(-32) = -13

Input

每包含一个整数,为需要转换成-2 进制的数

Ou

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值