首页 > 试题广场 >

缩短二进制

[编程题]缩短二进制
  • 热度指数:140927 时间限制: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)
#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)
//为了题目输出所编写一次输出八 和 十六进制 
//这个代码只要读懂小小改动,可实现任意进制。
#include<stdio.h>
#include<math.h>
#define NUM 1234 //输入大于0的正整数 

int main(void)
{
	int i=0;//控制循环
	int j=0;//控制循环
	int sum=0;//求和
	int ture=0;//消除八和十六进制多余的0 
	int index=0;//控制指数
	char arr[10];//存放求和 
		
	for(i=0;i<2;i++)
	{
		for(j=0;j<=32;j++,index++)
		{
			if(j%(i+3)==0&&index!=0)
			{
				arr[8-(j/(i+3))]=sum;			 
				sum=0;
				index=0;	  
			}		
			sum+=((NUM>>j)&1)*((int)pow(2,index));		 				
		}
		if(i!=0)
		printf(" ");
		for(j=0;j<8;j++)
		{		
			if(arr[j]||ture)
			{
				if(!ture)
				i==0?printf("0"):printf("0X");
				arr[j]<9?printf("%c",arr[j]+48):printf("%c",arr[j]+55);
				ture=1;
			}			
		}
		ture=0;
	}	
}

哈哈秒杀

发表于 2021-10-06 01:26:06 回复(5)