RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1532231
Accepted
Настя
Настя
Asked:2023-07-24 18:52:02 +0000 UTC2023-07-24 18:52:02 +0000 UTC 2023-07-24 18:52:02 +0000 UTC

将数字转换为二进制数系统,python代码输出错误答案

  • 772

我为该任务编写了代码:

Напишите программу, которая по данным числам A и n записывает 
представление числа A в n-разрядном двоичном дополнительном коде.

Входные данные
Первая строка входных данных содержит число A, вторая строка –– число 
n, при этом 2 ≤ n ≤ 16, −2^n−1 ≤ A ≤ (2^n−1)−1 .

Выходные данные
Программа должна вывести строку из n символов, содержащих запись числа 
A в n-разрядном двоичном дополнительном коде, первый символ –– старший 
знаковый разряд.

Примеры
входные данные
3
8

выходные данные
00000011
входные данные
57
8

выходные данные
00111001

我的代码:

def binar(x, n): 
    ans="" 
    while x>0:
        ans+=str(x%2)
        x//=2
    ans="0"*(n-len(ans))+(ans[::-1])
    return ans 
A=int(input()) 
n=int(input()) 
print(binar(A, n))

但在检查系统的一些测试中(它们是未知的),它给出了错误的答案,请帮助!

python
  • 4 4 个回答
  • 60 Views

4 个回答

  • Voted
  1. Best Answer
    MBo
    2023-07-24T22:56:49Z2023-07-24T22:56:49Z
    def binar(x, n):
        ans = ""
        for i in range(n):
            ans = "01"[x%2] + ans
            x //= 2
        return ans
    
    print(binar(10, 8))
    print(binar(-10, 8))
    
    00001010
    11110110
    
    • 3
  2. anton
    2023-07-24T20:15:54Z2023-07-24T20:15:54Z

    写起来比较容易...

    def f(x: int, n: int) -> str:
        return bin(x)[2:].zfill(n)
    
    x = int(input())
    n = int(input())
    print(f(x, n))
    
    • 0
  3. Stanislav Volodarskiy
    2023-07-25T00:46:24Z2023-07-25T00:46:24Z

    您不太可能接受这个答案。使用内置的Python工具,问题可以这样解决:

    a = int(input())
    n = int(input())
    if a < 0:
        a += 2 ** n # дополнительный код для отрицательных чисел
    print(f'{a:0{n}b}')
    
    #      задаёт ширину поля (n символов)
    #      |
    #      v
    #     ---
    f'{a:0{n}b}'
    #    -   -
    #    ^   ^
    #    |   |
    #    |   задаёт двоичную систему счисления
    #    | 
    #    заполняет недостающие символы нулями
    
    • 0
  4. Владимир
    2023-07-24T20:45:58Z2023-07-24T20:45:58Z

    你不计算负数。阅读有关其他代码的信息,例如在Wikipedia上。如果您坚持自己的风格,那么您应该添加一个函数来转换负数:

    def neg_binar(x, n):
        x = 2**n - abs(x)
        ans = ""
        while x:
            ans = str(x % 2) + ans
            x //= 2
        return ans
    
    
    def binar(x, n):
        ans = ""
        while x > 0:
            ans += str(x % 2)
            x //= 2
        ans = "0" * (n - len(ans)) + (ans[::-1])
        return ans
    
    
    A = int(input())
    n = int(input())
    if A >= 0:
        print(binar(A, n))
    else:
        print(neg_binar(A, n))
    

    值得注意的是,对于正数,可以使用 f-string 进行转换:

    print(f'{A:0{n}b}')
    

    或 bin() 函数:

    print(bin(A)[2:].zfill(n))
    
    • -1

相关问题

  • 是否可以以某种方式自定义 QTabWidget?

  • telebot.anihelper.ApiException 错误

  • Python。检查一个数字是否是 3 的幂。输出 无

  • 解析多个响应

  • 交换两个数组的元素,以便它们的新内容也反转

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5