进制

时间模拟

匿名 (未验证) 提交于 2019-12-02 23:36:01
题目内容: 给出下面的基类Time的框架如下: class Time { protected: int second; int minute; int hour; public: void operator++(); } 建立一个派生类Time_12hours,用于表示十二进制时间,增加以下成员数据: string type;//标识为12进制时间,type=”12-hours-time” string interval;//标识为AM或者PM,interval=”AM”或interval=”PM” 增加以下成员函数: void operator++(); 建立一个派生类Time_24hours,用于表示二十四进制时间,增加以下成员数据: string type;//标识为24进制时间,type=”24-hours-time” 增加以下成员函数: void operator++(); 生成上述类并编写主函数,根据输入的初始时间信息、自增或者自减类型、自增或者自减次数,输出其最后时间信息。 输入格式: 测试输入包含多个测试用例,一个测试用例为一行,每行共五个数字,第一个数字为进制,121表示输入为12进制AM时间,122表示输入为12进制PM时间,输入为24表示输入为24进制时间,第二个数字为hour,第三个数字为minute,第四个数字为second,第五个字符为运算类型,

483. 最小好进制

匿名 (未验证) 提交于 2019-12-02 23:32:01
对于给定的整数 n, 如果n的k(k>=2)进制数的所有数位全为1,则称 k(k>=2)是 n 的一个 好进制 。 以字符串的形式给出 n, 以字符串的形式返回 n 的最小好进制。 示例 1: 输入:"13" 输出:"3" 解释:13 的 3 进制是 111。 示例 2: 输入:"4681" 输出:"8" 解释:4681 的 8 进制是 11111。 示例 3: 输入:"1000000000000000000" 输出:"999999999999999999" 解释:1000000000000000000 的 999999999999999999 进制是 11。 提示: n的取值范围是 [3, 10^18]。 输入总是有效且没有前导 0。 转载请标明出处: 483. 最小好进制 文章来源: https://blog.csdn.net/umbrellasoft/article/details/89511043

504. 七进制数

匿名 (未验证) 提交于 2019-12-02 23:32:01
给定一个整数,将其转化为7进制,并以字符串形式输出。 示例 1: 输入: 100 输出: "202" 示例 2: 输入: -7 输出: "-10" class Solution { public: string convertToBase7(int num) { string s=""; if(num==0) return s+to_string(num); if(num<0) { num=abs(num); zhengShu(num, s); s='-'+s; } else zhengShu(num, s); return s; } void zhengShu(int num, string &s) { while(num>0) { s=to_string(num%7)+s; num/=7; } } }; 文章来源: https://blog.csdn.net/qq_23283325/article/details/89874669

字符串与16进制的相互转化

匿名 (未验证) 提交于 2019-12-02 22:56:40
由于 字符串存储过程中,用户输入的不确定性,导致解析时可能出现问题,所以采用字符串转化16进制的做法。 代码如下: /// <summary> /// 字符串转16进制 /// </summary> /// <param name="input">要转格式的字符串</param> /// <returns>转化为16进制的字符串</returns> private string ToSixteen(string input) { char[] values = input.ToCharArray(); string end = string.Empty; foreach (char letter in values) { int value = Convert.ToInt32(letter); string hexoutput = string.Format("{0:X}", value); //0 表示占位符 x或X表示十六进制 end += hexoutput + "_"; } end = end.Remove(end.Length - 1); return end; } /// <summary> /// 16进制转回字符串 /// </summary> /// <param name="input">16进制</param> /// <returns>转回的字符串<

十进制字符串转化为无符号整数

匿名 (未验证) 提交于 2019-12-02 22:56:40
头文件:#include <stdlib.h> strtoul() 函数源自于“string to unsigned long”,用来将字符串转换成无符号长整型数(unsigned long),其原型为: 【参数说明】str 为要转换的字符串,endstr 为第一个不能转换的字符的指针,base 为字符串 str 所采用的进制。 【函数说明】strtoul() 会将参数 str 字符串根据参数 base 来转换成无符号的长整型数(unsigned long)。参数 base 范围从2 至36,或0。参数 base 代表 str 采用的进制方式,如 base 值为10 则采用10 进制,若 base 值为16 则采用16 进制数等。 isspace() 两点注意: 当 base 的值为 0 时,默认采用 10 进制转换,但如果遇到 ‘0x‘ / ‘0X‘ 前置字符则会使用 16 进制转换,遇到 ‘0‘ 前置字符则会使用 8 进制转换。 strtol() 【返回值】返回转换后的无符号长整型数;如果不能转换或者 str 为空字符串,那么返回 0;如果转换得到的值超出unsigned long int 所能表示的范围,函数将返回 ULONG_MAX(在 limits.h 头文件中定义),并将 errno 的值设置为 ERANGE。 stof() 、 atoi() 、 atol() 、

第四章 python的文件操作

匿名 (未验证) 提交于 2019-12-02 22:51:30
在python里,我们可以通过open()方法打开文件并且用内置方法处理文件内容。 需要注意的是,open() 会默认自动转换为2进制再存储(write方法执行时)。所以open命令也是在2进制的基础上进行存储的。 obj = open(file='路径',mode='模式',encoding='编码') obj.write() # 可写模式下 obj.read() # 可读模式下 obj.close() 操作字符串 r/w/a r+/w+/a+ 直接操作2进制 rb/wb/ab r+b/w+b/a+b read() #全部读入内存 read(2) r模式下2表示读取前两个 字符 (不是字节),当rb模式,就是读取2个字节了 write(str) #w模式下,写入字符串 wb模式下写入的是2进制,所以字符串需要decode到2进制进行写入: 'obj.write(你好'.decode(utf-8)) seek(光标字节的位置) #无视打开模式都是字节 tell() #获取光标当前所在的字节位置 flush() #强制将写入内存的数据刷到硬盘上,相当于保存到硬盘 文件不关闭,就会浪费资源。有时候写代码的时候会忘记close() 推荐文件打开方法: with open(file='路径',mode='模式',encoding='编码') as f: # 相当于 f = open

C# 2进制、8进制、10进制、16进制...各种进制间的转换(一) convert 类中的方法

匿名 (未验证) 提交于 2019-12-02 22:06:11
    常见的进制方式,主要有二进制,八进制,十进制和十六进制,通用的转换方式是把非十进制的数据类型转换成十进制的,然后再转换成其他类型。 一 、Convert 类中的转换方法   把不同进制数值的字符串转换为数字(十进制) Convert.ToInt32(”100111101〃, 2); //二进制数 100111101 转成十进制 Convert.ToInt32(”76〃, 8); //八进数 76 制转成十进制 Convert.ToInt32(”FF”, 16); // 16进数 FF 制转换成十进制 2、Convert.ToString(int value, int toBase);   可以把一个数字(十进制)转换为不同进制数值的字符串格式, Convert.ToString(69, 2); //十进制数 69 转二进制 Convert.ToString(69, 8); //十进制数 69 转八进制 Convert.ToString(69, 16);//十进制数 69 转十六进制 进制转换的入口函数: /// <summary> /// 进制转换 /// </summary> /// <param name="input"></param> /// <param name="fromType">原来的进制格式</param> /// <param name="toType

linux常用计算命令

匿名 (未验证) 提交于 2019-12-02 21:56:30
一、bc 命令 常用参数选项: -i:强制进入交互式模式; -l:定义使用的标准数学库; -w:对POSIX bc的扩展给出警告信息; -q:不打印正常的GNU bc环境信息; -v:显示指令版本信息; -h:显示指令的帮助信息。 在bc工作环境下,可以使用以下计算符号: + 加法 - 减法 * 乘法 / 除法 ^ 指数 % 余数 其中,在做“除法计算”或“余数计算”时,可以使用scale指定小数点之后的位数(默认为0,即整数) 实例说明: [root@slave-server ~]# bc -v bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. [root@slave-server ~]# bc <<< 5*4 20 如下,进入交互模式:也可以一行输入多个计算,用逗号;相隔。 [root@slave-server ~]# bc bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type

1.5编程基础之循环控制 25:求特殊自然

半城伤御伤魂 提交于 2019-12-02 19:41:42
描述 一个十进制自然数,它的七进制与九进制表示都是三位数,且七进制与九进制的三位数码表示顺序正好相反。编程求此自然数,并输出显示。 输入无。输出三行: 第一行是此自然数的十进制表示; 第二行是此自然数的七进制表示; 第三行是此自然数的九进制表示。样例输入 (无) 样例输出 (不提供) 源代码(错解) #include<iostream> #include<iomanip> #include<cmath> using namespace std; int main() { int a; for(int i=81;i<=342;i++) { if(a/49==a%9&&a%49/7==a%81/9&&a%7==a/81){ cout<<a<<endl; cout<<a/49<<a%49/7<<a%7<<endl; cout<<a/81<<a%81/9<<a%9; } } return 0; } 源代码 #include<iostream> #include<iomanip> #include<cmath> using namespace std; int main() { for(int a=81;a<=342;a++) { if(a/49==a%9 && a%49/7==a%81/9 && a%7==a/81){ cout<<a<<endl; cout<<a/49<<a%49/7<