进制

python17之day2

落爺英雄遲暮 提交于 2020-02-01 01:52:02
一、进制 1.进制简介   进制就是进位制,是一种进位方法。计算机语言就是二进制,计算机能直接识别二进制数据,其它数据都不能直接识别。 2.常用进制  1) 十进制:运算规则”逢十进一”; 2) 八进制:运算规则”逢八进一”; 3) 十六进制:运算规则”逢十六进一”; 4) 二进制:运算规则”逢二进一”。 3.进制转换 我们有最常用的转换方法:用十进制数据除以目标进制得到余数,并将余数从最后一个到第一个排列,就是转换后的目标进制表示形式(简称“ 除基取余,直到商为0,余数反转 ”)。以十进制43向二进制转换为例,得到的数值排列:101011,所以十进制43的二进制表示形式为101011,同理,如果求八进制、十六进制表示形式,用43除以8、16即可。 二、基本数据类型 1.字符串 类:str 方法:选中str,按住command(ctrl)+左键跳转至对应的方法 字符串常用方法归纳如下: 1)capitalize 功能:实现字符串首字母大写,自身不变,会生成一个新的值 2)casefold 功能:将所有大写变成小写,另外支持多门语言变化 3)lower,upper 功能: lower:将所有的大写变小写,局限英文 upper:将所有小写变大写 4)center 功能:文本居中,空白处填充字符 参数1:表示总长度;参数2:空白处填充的字符(长度为1) 例子: 1 name = 'tx'

PAT乙级1074(C++)——龙哥哥的刷题路

落花浮王杯 提交于 2020-01-31 21:57:19
1074 宇宙无敌加法器 (20分) 地球人习惯使用十进制数,并且默认一个数字的每一位都是十进制的。而在 PAT 星人开挂的世界里,每个数字的每一位都是不同进制的,这种神奇的数字称为“PAT数”。每个 PAT 星人都必须熟记各位数字的进制表,例如“……0527”就表示最低位是 7 进制数、第 2 位是 2 进制数、第 3 位是 5 进制数、第 4 位是 10 进制数,等等。每一位的进制 d 或者是 0(表示十进制)、或者是 [2,9] 区间内的整数。理论上这个进制表应该包含无穷多位数字,但从实际应用出发,PAT 星人通常只需要记住前 20 位就够用了,以后各位默认为 10 进制。 在这样的数字系统中,即使是简单的加法运算也变得不简单。例如对应进制表“0527”,该如何计算“6203 + 415”呢?我们得首先计算最低位:3 + 5 = 8;因为最低位是 7 进制的,所以我们得到 1 和 1 个进位。第 2 位是:0 + 1 + 1(进位)= 2;因为此位是 2 进制的,所以我们得到 0 和 1 个进位。第 3 位是:2 + 4 + 1(进位)= 7;因为此位是 5 进制的,所以我们得到 2 和 1 个进位。第 4 位是:6 + 1(进位)= 7;因为此位是 10 进制的,所以我们就得到 7。最后我们得到:6203 + 415 = 7201。 输入格式: 输入首先在第一行给出一个 N

python基础2--进制、字符编码和文件处理

拈花ヽ惹草 提交于 2020-01-28 21:24:29
一、进制 1、二进制 定义 二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是"逢二进一" 转换方式 二进制转换为十进制: 把二进制数按权展开、相加即得十进制数。 十进制转换为二进制: 十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止 python中的方法: 2、16进制 定义 16进制,英文名称Hexadecimal(简写Hex), 在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制数字 转换方式和二进制和十进制转换方式类似。 16进制转10进制: 1000=1X16^3(16的3次方)+0X16^2(16的2次方)+0X16(16的1次方)+0X1(16的0次方)=4096。 FFF=15(16^2) + 15(16^1) + 15*(16^0) = 4095。 10进制转16进制: 除16取余数得最低1位,然后把商继续除得第2位,直到商等于0 python中的方法 二、字符编码 ASCII码 用1个字节Bytes(8位二进制)代表一个字符 GB2312 & GBK 2Bytes代表一个中文字符,1Bytes表示一个英文字符 Unicode 能够兼容万国字符 UTF-8 对英文字符只用1Bytes表示,对中文字符用3Bytes

1010 Radix

陌路散爱 提交于 2020-01-28 13:44:43
1010 Radix 注意点 如 111 1 1 10 类似情况下,若n为个位数,如果本身比另一个数小,则多少的进制都是没有用的(可能会造成空循环而超时),不过好像没有这么一个测试用例 进制应该比最少数据中的最大的数要大一,如8最少是9进制的数,z最少是36进制的数 注意算法中的超时问题如 9999999999 11 1 10 很容易超时,注意匹配的算法 如果用c等强类型语言写,注意溢出问题, int 类型肯定是不够的 python3代码 def getNum(num, radix): sum = 0 count = 0 for i in num[::-1]: if i <= '9': sum += int(i)*pow(radix, count) else: sum += (ord(i)-87)*pow(radix, count) count += 1 return sum num0 = 0 num1 = 0 data_list = input().split(" ") if data_list[2] == '1': num0 = getNum(data_list[0], int(data_list[3])) num1 = data_list[1] else: num0 = getNum(data_list[1], int(data_list[3])) num1 = data

1309:【例1.6】回文数(Noip1999)

半世苍凉 提交于 2020-01-24 17:06:46
1309:【例1.6】回文数(Noip1999) 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 若一个数(首位不为零)从左向右读与从右向左读都是一样,我们就将其称之为回文数。例如:给定一个 10进制数 56,将 56加 65(即把56从右向左读),得到 121是一个回文数。又如,对于10进制数87, STEP1: 87+78= 165 STEP2: 165+561= 726 STEP3: 726+627=1353 STEP4:1353+3531=4884 在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。 写一个程序,给定一个N(2<N<=10或N=16)进制数 M.求最少经过几步可以得到回文数。如果在30步以内(包含30步)不可能得到回文数,则输出“Impossible” 。 【输入】 给定一个N(2<N<=10或N=16)进制数M。 【输出】 最少几步。如果在30步以内(包含30步)不可能得到回文数,则输出“Impossible”。 【输入样例】 9 87 【输出样例】 6 【来源】 No #include <cstdio> #include <cstring> #include <iostream> using namespace std; int a[101],b[101],n,ans,i; void init(int a

进制的介绍,原码,补码,反码

旧街凉风 提交于 2020-01-24 16:14:28
计算机中的二进制: 一些固有的概念不介绍,直接更加形象例子的介绍: 比如: 十进制的1 转换为二进制就是 0 0 0 0 0 0 0 1 2的0次方=1 十进制的-1 转换为二进制就是 1 0 0 0 0 0 0 1 高位 :其中红色标记的是高位,1是负数,0为正数 以-2为例子:(因为正数的原码补码反码都是一样的,所以不再描述) -2的原码: 1 0 0 0 0 0 1 0 --2的反码: 1 1 1 1 1 1 0 1 -2的补码: 1 1 1 1 1 1 1 0 反码加上1,2进制遇二进一(计算机是通过补码进行运算的,所以补码非常的重要) 来源: https://www.cnblogs.com/qiaohechen/p/12232254.html

1022 D进制的A+B

送分小仙女□ 提交于 2020-01-24 06:00:47
输入两个非负 10 进制整数 A 和 B (≤2 ​30 ​​ −1),输出 A+B 的 D (1<D≤10)进制数。 输入格式: 输入在一行中依次给出 3 个整数 A、B 和 D。 输出格式: 输出 A+B 的 D 进制数。 输入样例: 123 456 8 输出样例: 1103 思路: 将十进制数num转为d进制:当num不为0的时候,利用数组存储num%d,然后num=num/d,循环,直到num为0; C++代码: # include <cstdio> int main ( ) { int a , b , d , num ; scanf ( "%d %d %d" , & a , & b , & d ) ; num = a + b ; int arr [ 40 ] , count = 0 ; do { arr [ count ++ ] = num % d ; num = num / d ; } while ( num != 0 ) ; for ( int i = count - 1 ; i >= 0 ; i -- ) { printf ( "%d" , arr [ i ] ) ; } return 0 ; } 来源: CSDN 作者: S努力努力努力 链接: https://blog.csdn.net/u014424618/article/details/103964361

C++的cout高阶格式化操作

眉间皱痕 提交于 2020-01-24 04:51:58
(敬告:当您的浏览器以非默认字体浏览本文时,段落格式可能会出现偏差) 这篇文章主要讲解如何在C++中使用cout进行高级的格式化输出操作,包括数字的各种计数法(精度)输出,左或右对齐,大小写等等。通过本文,您可以完全脱离scanf/printf,仅使用cout来完成一切需要的格式化输入输出功能(从非性能的角度而言)。更进一步而言,您还可以在<sstream>、<fstream>上使用这些格式化操作,从而代替sprintf和fprintf函数。为方便描述,下文仅以cout为例进行介绍。 一、综述 cout是STL库提供的一个iostream实例,拥有ios_base基类的全部函数和成员数据。进行格式化操作可以直接利用setf/unsetf函数和flags函数。cout维护一个当前的格式状态,setf/unsetf函数是在当前的格式状态上追加或删除指定的格式,而flags则是将当前格式状态全部替换为指定的格式。cout为这个函数提供了如下参数(可选格式): ios::dec 以10进制表示整数 ios::hex 以16进制表示整数 ios::oct 以8进制表示整数 ios::showbase 为整数添加一个表示其进制的前缀 ios::internal 在符号位和数值的中间插入需要数量的填充字符以使串两端对齐 ios::left 在串的末尾插入填充字符以使串居左对齐 ios:

python 转换进制(2-128进制)

∥☆過路亽.° 提交于 2020-01-23 10:38:43
python 转换进制(2-128进制任意转换) 因为先做的62进制程序,所以先说62进制的方法,扩展到128进制的见后面的部分,基本一样 首先说说62进制的表达方式: 0-9依然延续10进制的0-9表达,然后是小写的字母a-z,再大写的字母A-Z 即35[10进制]=z[62进制];61[10进制]=Z[62进制]; 因为带字母,因此定义以字符串形式输入 转换方法,先切片字符为list,然后转换为10进制的数字,再转换为要转换进制的表达式。 其中reverse() 函数用于反向列表中元素,由个十百转为百十个 #coding=gbk def f ( nx , x1 , x ) : #n为待转换的十进制数,x为机制,取值为2-62 a = [ '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' , 'h' , 'i' , 'j' , 'k' , 'l' , 'm' , 'n' , 'o' , 'p' , 'q' , 'r' , 's' , 't' , 'u' , 'v' , 'w' , 'x' , 'y' , 'z' , 'A' , 'B' , 'C' , 'D' , 'E' , 'F' , 'G' , 'H' , 'I' , 'J' ,

Neo4j自用手册

江枫思渺然 提交于 2020-01-21 02:13:06
一、Neo4j基本操作 1. 增删改查 1.1 创建节点与关系 01-创建节点 CREATE(m:进制) //m为变量名,写什么都可以,“进制”为标签 02- 创建带有属性的节点 CREATE (m:进制 { 中文名:"进制",外文名称:"system of numeration",实质:"是人们规定的一种进位方法" }) match(m:进制) return(n) //match为查询匹配的功能,有match,一定要有return 03-判断是否节点已存在,若存在不操作,不存在再创建 MERGE (n {name: '3'}) //Create if a node with name='3' does not exist else match it MERGE (test2 {name:'2'}) //Create if a node with name='2' does not exist else match it 04-创建节点之间的关系 //直接创建新的节点关系,以下将创建两个节点,一个带属性的关系(边) CREATE (m:进制 {name:"byte"})-[r:应用{年代:1990,人物:"冯诺依曼"}]->(n:内存 {name:"memory"}) //已有的两个节点创建关系 MATCH (m:进制 {name:"byte"}),(n:内存 {name: