首页 > 试题广场 >

缩短二进制

[编程题]缩短二进制
  • 热度指数:154686 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

我们处理的整数通常用十进制表示,在计算机内存中是以二进制补码形式存储,但通常二进制表示的整数比较长,为了便于在程序设计过程中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表示的整,但保持了二进制数的表达特点。请输出十进制整数1234对应的八进制和十六进制。


输入描述:


输出描述:
十进制整数1234对应的八进制和十六进制(字母大写),用空格分开,并且要求,在八进制前显示前导0,在十六进制数前显示前导0X

备注:
printf可以使用使用格式控制串“%o”、“%X”分别输出八进制整数和十六进制整数,并使用修饰符“#”控制前导显示
num = 1234
# print(oct(num))
# print(hex(num))

def octcreate(num,jing,pre):
    result = ''
    dicts = {10:"A",11:"B" ,12:"C"  ,13:"D",14:"E",15:"F" }
    
    while num:
        if 9 < num < jing:
            result = dicts[num] + result
            return  pre+str(result)
        elif num <jing:
            result = str(num) + result
            return pre+str(result)
        tes = num%jing
        if 9 < tes < jing:
            result = dicts[tes] + result
        elif tes <jing:
            result = str(tes) + result
        num = num//jing

print(octcreate(num,8,'0'),end=" ")
print(octcreate(num,16,'0X'),end=" ")

发表于 2024-09-27 22:10:31 回复(0)
print('{} {}'.format(oct(1234).replace('o',''),hex(1234).upper()))

  1. oct(1234): 这将整数1234转换为八进制字符串。例如,oct(1234)的结果可能是'0o2322',其中'0o'表示八进制。
  2. oct(1234).replace('o', ''): 这一步用于去掉字符串中的'o',得到'2322',这是去掉八进制前缀的结果。
  3. hex(1234): 这将整数1234转换为十六进制字符串。例如,hex(1234)的结果可能是'0x4D2',其中'0x'表示十六进制。
  4. hex(1234).upper(): 这一步将十六进制字符串中的字母转换为大写,得到'0X4D2'。
  5. format('{} {}'.format(oct(1234).replace('o',''), hex(1234).upper())): 这是使用字符串格式化的方法,将前面两个步骤得到的结果填充到字符串模板'{} {}'中。最终的结果是一个字符串,其中包含八进制和十六进制表示的1234,如'2322 0X4D2'。

发表于 2024-01-19 16:06:40 回复(0)
n = 1234
print(oct(n).replace('o', ''), hex(n).upper())
发表于 2023-04-12 16:08:57 回复(0)
print('{} {}'.format(oct(1234).replace('o',''),hex(1234).upper()))

发表于 2023-01-16 16:51:57 回复(0)
print(f"0{1234:o} 0X{1234:X}")

发表于 2022-11-02 09:37:18 回复(0)

问题信息

上传者:牛客309119号
难度:
5条回答 7206浏览

热门推荐

通过挑战的用户

查看代码
缩短二进制