首页 > 试题广场 >

缩短二进制

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

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


输入描述:


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

备注:
printf可以使用使用格式控制串“%o”、“%X”分别输出八进制整数和十六进制整数,并使用修饰符“#”控制前导显示
using System;
namespace std
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("0"+Convert.ToString(1234,8).ToUpper());//转大写否则报错
            Console.Write(" 0X"+Convert.ToString(1234,16).ToUpper());//转大写否则报错
        }
    }
}
发表于 2021-06-26 09:40:52 回复(0)
 
public class Main{
    public static void main(String[] args){
        System.out.print("0"+Integer.toOctalString(1234)+" ");
        String str = (Integer.toHexString(1234)).toUpperCase();
        System.out.println("0X"+str);
    }
}
转16进制,要注意大小写。

发表于 2020-05-01 15:56:50 回复(0)
public class Main{
    public static void main(String[] args){
        System.out.printf("%#o %#X",1234,1234);
    }
}
发表于 2021-09-17 17:37:05 回复(0)
python 用自带的方法16进制字母是小写,还得转换一下
发表于 2020-08-14 01:54:46 回复(0)
#include <stdio.h>
int main()
{
    printf("%#0o %#0X", 1234, 1234);
    return 0;
}


编辑于 2020-04-15 18:59:55 回复(7)
这个为啥通不过啊

#include <stdio.h>
int main()
{
    printf("%#0o %#0Xx",1234,1234);
           return 0;
}
发表于 2021-07-22 16:40:16 回复(2)
没看到java的这种解法,补充一下:
public class Main{
    public static void main(String[] args){
        int x = 1234;
        System.out.printf("%#o", x);
        System.out.print(' ');
        System.out.printf("%#X", x);
    }
}


发表于 2020-05-20 21:38:05 回复(6)
print('{} {}'.format(oct(1234).replace('o',''),hex(1234).upper())
嘻嘻😁
发表于 2020-04-07 19:45:34 回复(0)
print(oct(1234)+" "+hex(1234).upper())
upper是为了让其变成大写
发表于 2020-04-27 06:44:14 回复(0)
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout<<"0"<<oct<<int(1234)<<" ";
cout<<"0X"<<setiosflags(ios::uppercase)<<hex<<int(1234);
return 0;
}
编辑于 2020-03-25 09:29:47 回复(0)
#include <stdio.h>
int main(){
    int a=1234;
    printf("%o\ ",a);
    printf("%x\ ",a);
    return 0;
}
发表于 2021-07-06 16:04:24 回复(0)
print(f'0{1234:o} 0X{1234:X}')
编辑于 2021-06-10 17:49:37 回复(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)
#include<stdio.h>
int main()
{
    int a=1234;
   printf("%#o %#X",a,a);
    
    return 0;
}

发表于 2022-05-12 11:01:17 回复(0)
你们都不行,我直接用计算器哈哈哈哈哈哈哈哈
发表于 2022-01-14 23:47:08 回复(0)
#include<stdio.h>
int main(){
    int a =1234;
    printf("%#o %#X\n", a, a);
    return 0;
}

//这为啥通过不了?
发表于 2021-07-26 19:09:08 回复(1)
print(str(oct(1234)).replace('o',''),end=' ')
print(str(hex(1234)).upper())


发表于 2020-04-24 14:49:08 回复(0)
#include <stdio.h>

int main() {
    // o八进制,X十六进制,这里的#为控制显示
    printf("%#o ",1234);
    printf("%#X",1234);
    return 0;
}

发表于 2023-07-22 14:46:16 回复(0)
//补充知识点
//%d  十进制
//%o  八进制
//%x  十六进制
//如所需进制需加前导
//则将%变为%o
#include <stdio.h>
int main (void)
{
    int i = 1234;
    printf("%#o %#X",i, i);
    return 0;
}

发表于 2022-07-24 17:05:39 回复(0)
int main()
{
//http://c.biancheng.net/view/1759.html 16进制的大写输出
    printf("%#o %#X",1234,1234);
    return 0;
}
发表于 2021-12-07 09:23:14 回复(0)