NYOJ-244-16进制的简单运算

16进制的简单运算

时间限制:1000 ms  |  内存限制:65535 KB

难度:1

描述
现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结果。

输入
第一行输入一个正整数T(0<T<100000)

接下来有T行,每行输入一个字符串s(长度小于15)字符串中有两个数和一个加号或者一个减号,且表达式合法并且所有运算的数都小于31位

输出
每个表达式输出占一行,输出表达式8进制的结果。
样例输入
3
29+4823
18be+6784
4ae1-3d6c
样例输出
44114
100102
6565

//代码:

#include<stdio.h>
int main(){
	int T,x,y;
	char ch;
	scanf("%d",&T);
	while(T--){
		scanf("%x%c%x",&x,&ch,&y);
		if(ch=='+')
		printf("%o\n",x+y);
		else
		printf("%o\n",x-y);
	}
	return 0;
}

//最开始把问题想复杂了,用字符串数组模拟的,忘记用数据的基本格式类型就可以转化!!!!C语言的基本知识还是需要强化!!!!

时间: 2024-08-10 16:29:28

NYOJ-244-16进制的简单运算的相关文章

16进制的简单运算

描述现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结果. 输入 第一行输入一个正整数T(0<T<100000)接下来有T行,每行输入一个字符串s(长度小于15)字符串中有两个数和一个加号或者一个减号,且表达式合法并且所有运算的数都小于31位 输出 每个表达式输出占一行,输出表达式8进制的结果. 样例输入 3 29+4823 18be+6784 4ae1-3d6c 样例输出44114 100102 6565分析:可以看出来这是一个考察C语言基础的体型,静下心来应该不会有问题,做出

NYOJ--244--16进制的简单运算(C++控制输入输出)

16进制的简单运算 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结果. 输入 第一行输入一个正整数T(0<T<100000)接下来有T行,每行输入一个字符串s(长度小于15)字符串中有两个数和一个加号或者一个减号,且表达式合法并且所有运算的数都小于31位 输出 每个表达式输出占一行,输出表达式8进制的结果. 样例输入 3 29+4823 18be+6784 4ae1-3d6c 样例输出 44114

南阳oj-244-16进制的简单运算

16进制的简单运算 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结果. 输入 第一行输入一个正整数T(0<T<100000) 接下来有T行,每行输入一个字符串s(长度小于15)字符串中有两个数和一个加号或者一个减号,且表达式合法并且所有运算的数都小于31位 输出 每个表达式输出占一行,输出表达式8进制的结果. 样例输入 3 29+4823 18be+6784 4ae1-3d6c 样例输出 44114

C# Socket发送接收字节数组和十六16进制之间转换函数

近期在使用远程网络模块的时候, 需要用的Socket发送数据,远程模块指令为16进制. 官方提供的DEMO比较繁琐.不方便新手使用. 下面的转换函数可大大方便新手使用. // 16进制字符串转字节数组 格式为 string sendMessage = "00 01 00 00 00 06 FF 05 00 64 00 00"; private static byte[] HexStrTobyte(string hexString) { hexString = hexString.Rep

16进制转化为2进制 【位运算】

#include <stdio.h> int  main() {    int i,a; while (~scanf("%x", &a)){ for(i=15;i>=0;i--) printf("%1d", a&1<<i?1:0);  //注意优先级,先移位<<,结果再与a按位与 printf("\n"); }return 0; } 16进制转化为2进制 [位运算]

将网络流中用两个字节16进制表示的资源数(如DNS)和长度转换为整形

由于在网上搜索一直没有找到结果,而直接用指针强制转换的方法,却会导致高八位和第八位倒过来的错误,于是冥思苦想自己写了一个 思想大致如下: 用u_int16_t的2字节16位的整形变量来存储这个整数,首先将第一个字节和该变量进行或运算,运算结果左移八位,于是刚才的第一个字节结果就到了高八位,然后在与第二个字节进行或运算尽可以了代码如下: u_int16_t convert16(u_char *p) { u_int16_t tmp = 0; tmp |= p[0]; tmp <<= 8; tmp

详解2进制,10进制,16进制,8进制,36进制

本篇介绍C/C++语言中的进制的概念,主要介绍2进制.10进制.16进制,这三种是编程时必须掌握的也是最经常使用的.另外,介绍8进制和36进制,当中 36进制在实际project项目中会遇到. (本文选自<C/C++学习指南>.邵发.附录"2进制,10进制,16进制") 讲2进制.10进制.16进制的视频教程,点击观看 权利声明:作者拥有本书的所有权利. 作者授权不论什么人都能够自由转载本站点公布的内容,但转载时必须遵守下面限制: ①转载时必须全文转载.不得有不论什么改动,

详细解释2进制,10进制,16进制,8进制,36进制

本篇介绍C/C++语言中的进制的概念,主要介绍2进制.10进制.16进制,这三种是编程时必须掌握的也是最常用的.另外,介绍8进制和36进制,其中 36进制在实际工程项目中会遇到. (本文选自<C/C++学习指南>,邵发,附录"2进制,10进制,16进制") 权利声明:作者拥有本书的全部权利.作者授权任何人都可以自由转载本网站发布的内容,但转载时必须遵守以下限制: ①转载时必须全文转载,不得有任何修改,必须包含"权利声明"和"官网地址"

浮点数转16进制

IEEE规定浮点编码 float 1符号 8指数           23数据位 S        EEEEEEEE    DDDDDDDDDDDDDDDDDDDDDDD double 1符号 11指数           52数据位 S     EEEEEEEEEEE    DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD 58.25 先处理整数部分58,整数部分取余直到商0,逆序排列 58 % 2    商 29  余 0 29 % 2