nyoj244十六进制转换

本文介绍了一个简单的程序实现,该程序接收十六进制形式的加减表达式,并将其结果转换为八进制形式输出。文章通过示例说明了如何使用C++标准库中的流控制来解析不同进制的数值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这道题没有想到还有这种解法,其实是书上的内容啊,看课本,看课本。在这引用一下各种进制的相关运算,填补了我一点空白。

#include <iostream>
using namespace std ;
int main()
{
    int i, j, k, l;
    cout<<"Input i(oct), j(hex), k(hex), l(dec):"<<endl;
    cin>>oct>>i; //输入为八进制数
    cin>>hex>>j; //输入为十六进制数
    cin>>k; //输入仍为十六进制数
    cin>>dec>>l; //输入为十进制数
    cout<<"hex:"<<"i="<<hex<<i<<endl;
    cout<<"dec:"<<"j="<<dec<<j<<'\t'<<"k="<<k<<endl;
    cout<<"oct:"<<"l="<<oct<<l;
    cout<<dec<<endl; //恢复十进制输出状态
    return 0;
}
【执行结果】:
(1)输出提示:Input i(oct), j(hex), k(hex), l(dec):
(2)此时从键盘输入: 032 0x3f 0xa0 17 <CR>
(3)输出结果为:
    hex:i=1a
    dec:j=63    k=160
    oct:l=21
描述
    现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结果。

输入
    第一行输入一个正整数T0<T<100000)
    接下来有T行,每行输入一个字符串s(长度小于15)字符串中有两个数和一个加号或者一个减号,且表达式合法并且所有运算的数都小于31位
输出
    每个表达式输出占一行,输出表达式8进制的结果。
样例输入

    3
    29+4823
    18be+6784
    4ae1-3d6c

样例输出

    44114
    100102
    6565


#include<iostream>
using namespace std;
int main(){
    int num;
    cin>>num;
    while(num--){
        int i,j;
        char k;
        cin>>hex>>i>>k>>hex>>j;
        cout<<i<<" "<<endl;
        if(k=='-')cout<<oct<<i-j<<endl;
        if(k=='+')cout<<oct<<i+j<<endl;
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值