十六进制

笨方法学Python摘记(1)

青春壹個敷衍的年華 提交于 2019-12-05 06:33:35
编程新手所需的最重要的三种技能: 读和写、注重细节、发现不同 不要复制粘贴! #-*-codinig:utf-8 -*- (脚本使用unicode UTF-8) 书写习惯: 操作符的两边加上空格 ,提高代码的易读性 Python格式化字符: %r 不管什么都打印出来 %c 格式化字符及其ASCII码 %s 格式化字符串 %d 格式化整数 %u 格式化无符号整数 %o 格式化无符号八进制数 %x 格式化无符号十六进制数 %X 格式化无符号十六进制数(大写) %f 格式化浮点数字,可指定小数点后的精度 %e/%E 用科学计数法格式化浮点数 %g/%G %f和%e/%E的简写 %p 用十六进制格式化变量的地址 格式化操作符辅助指令: * 定义宽度或者小数点精度 - 做左对齐 + 在正数前面显示加号(+) <sp> 在正数前面显示空格 # 在八进制数前面显示零(‘0’),在十六进制前面显示‘0x'或者’0X‘(取决于用的是’x‘还是’X') 0 显示的数字前面填充‘0’而不是默认的空格 % ‘%%’输出一个单一的‘%’ (var) 映射变量(字典参数) m.n m是显示的最小总参数,n是小数点后的位数(如果可以用的话) 在 Python 中 print 默认是换行的;要想不换行你应该写成print(i, end = ' ' ) 来源: https://www.cnblogs.com

用二进制写程序,提升装 X 境界

久未见 提交于 2019-12-05 05:10:49
用二进制来写程序这么反人类的事情,的确是很装的事情,但是它不但是一件很装的事情,也是掌握底层知识的 基础能力之一。 听我慢慢道来。 程序设计语言有高级语言和低级语言之分,尤其是现在各种编程语言的不断发展,掌握高级程序设计语言的人越来越多。 但是是否可以使用二进制来写程序呢? 也许最初使用打孔带来控制机器的人可以完成,那么现在是否仍然有人可以完成呢? 答案是肯定的! 计算机可以直接运行的指令是二进制的机器码,所有的代码在运行之前都会变成 CPU 可以识别的二进制。 对于编译型的二进制语言,其实都是可以直接使用二进制来写的。 比如,Windows 下使用 C 语言编写的程序编译连接后可以生成一个 .exe 的可执行程序,生成的这个可执行程序就是一个二进制程序。 那么,这个程序如何用二进制编写呢? 先来考虑几个问题! 首先,可执行程序中并非只有代码,而 CPU 要执行的只有代码。 其次,CPU 执行的代码是二进制,但是在内存中的数据也是二进制数据,那么如何知道哪部分是代码,哪部分是数据呢? 这是操作系统在加载程序文件进入内存时,操作系统按照一定规则把不同二进制按照不同的属性装入了不同的内存分页当中,并对内存设置相应的属性。 最后,操作系统如何知道程序文件中的二进制哪部分是数据,哪部分是代码呢? 这是在程序被编译连接时不但把代码和代码所需的数据编译到了程序中

python二八十六进制的相互转换

懵懂的女人 提交于 2019-12-05 01:49:33
从《Python+Cookbook》中的第三章第四节中转载 问题 你需要转换或者输出使用二进制,八进制或十六进制表示的整数。 解决方案 为了将整数转换为二进制、八进制或十六进制的文本串,可以分别使用 bin() , oct() 或 hex() 函数: >>> x = 1234 >>> bin(x) '0b10011010010' >>> oct(x) '0o2322' >>> hex(x) '0x4d2' >>> 另外,如果你不想输出 0b , 0o 或者 0x 的前缀的话,可以使用 format() 函数。比 如: >>> format(x, 'b') '10011010010' >>> format(x, 'o') '2322' >>> format(x, 'x') '4d2' >>> 整数是有符号的,所以如果你在处理负数的话,输出结果会包含一个负号。比如: >>> x = -1234 >>> format(x, 'b') '-10011010010' >>> format(x, 'x') '-4d2' >>> 如果你想产生一个无符号值,你需要增加一个指示最大位长度的值。比如为了显示 32 位的值,可以像下面这样写: >>> x = -1234 >>> format(2**32 + x, 'b') '11111111111111111111101100101110' >>>

Java byte和hex十六进制字符串转换

∥☆過路亽.° 提交于 2019-12-04 19:11:04
在Java中字符串由字符char组成, 一个char由两个byte组成, 而一个byte由八个bit组成, 一个十六进制字符(0-F)实际上由4个字节byte即可表达, 因此, 从字节数组到十六进制字符串, 实际上占用的存储空间扩大了4倍。 下面来看一下从十六进制字符串转换为字节数组的方式: 第一种方法: 实际借用了Character类的方法进行16进制的转换 1 static byte[] hexToByteArray2(String hex) 2 { 3 int l = hex.length(); 4 byte[] data = new byte[l / 2]; 5 for (int i = 0; i < l; i += 2) 6 { 7 data[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) << 4) 8 + Character.digit(hex.charAt(i + 1), 16)); 9 } 10 return data; 11 } 第二种方法: 借用了Integer类中的十六进制转换: 1 static byte[] hexToByteArray(String hexString) { 2 byte[] result = new byte[hexString.length() / 2]; 3 for

C语言博客作业04--数组

瘦欲@ 提交于 2019-12-04 18:19:28
0.展示PTA总分 1.本章学习总结 1.1 学习内容总结 数组中可以用 for语句 来一个一个的查找对应的数,即下标法;在字符数组中也可以用 结束符\0 来判断查找数据。 数组中 插入数据 可以将该数据放在该数组对应位置后,把该位置后的数组数据往后移一个位置,该位置前面的数据位置不变;也可以重新定义一个数组,重新存放插入数据后的数组数据。 数组中 删除数据 可以将重该位置开始的数据,把所有数据都往前移一个位置,也就是将该位置的数据用后一个数据来代替。也可以重新定义一个数组,重新存放除要删除的数据之外的所有数据。也可以用下标法来删除数据,即删除该数据所对应的数据下标,然后将之后的数组下标往前移一格。 数组中目前学到的 排序方法 有:冒泡排序法,选择排序法。冒泡排序法就是运用循环语句对比 每两个相邻数据 , 大的往下沉,小的往上浮 。选择排序法就是先 固定一个数 ,然后将该数与数组中的其他数据一一对比,如果该数大于或者小于另一个数( 主要看题目要求 是从大到小还是从小到大),就将两个数的位置互换。 数组做 枚举法 的案例:例如pta里面那题观众对电视节目满意度的调查。就是用电视节目的编号作为数组下标,这样子可读性比较强,也更方便操作。 哈希数组用法 :就是将一个数组中的 内容 作为另一个数组(该数组的数据全部初始化为零)的 下标 ,然后输入一个数时,直接将该数作为另一个下标数组的下标

第二次博客园作业

那年仲夏 提交于 2019-12-04 04:54:04
第二次博客园作业 一、代码运行截图 说明: 除非用户主动选择退出 ,否则可一直进行进制转换。 而当再次输入数字时,界面会清屏。 二、额外拓展 当程序输入的进制与该数不符会报错 输入的目标进制非二、八、十、十六会报错 完成一次进制转换后能自主选择是否结束 三、代码里的函数介绍 ​ (除十六进制外)任意进制转十进制函数: int wantonly_to_decimalism(int num, int p) //num表示需转换的原数,p表示该数的原进制数 { int result = 0; int product = 1; //product用来存储原进制数的幂 while (num != 0) { //按权展开求数的十进制 result = result + num % 10 * product; num /= 10; product *= p; } return result; } 说明:此函数只适用于二、八、十进制转十进制。思路在代码里面。 ​ 十进制数转二进制函数: int decimalism_to_binary(int num) /*十进制转二进制*/ { int op[100]; //定义一个足够大的数组来存储需转换数除二的余数 int result = 0; int i; int count = 0; //count用来存放每个余数的序号,方便后面按想要的顺序取余数

第二次博客作业

南楼画角 提交于 2019-12-04 04:43:01
一.运行截图 (1) 这是输入正确时的转换 (2) 当输入的选项不在选项范围时会提示无效选项且不会退出,而是可以继续选择。 (3)当输入的数字不是所需进制数时会提示错误,并且可以重新输入正确的数字。 (由于其他操作均相同,就不一一列出所有进制转换及错误提示) 二.函数介绍 1.函数声明 #include<stdio.h> #include<string.h> #include<math.h> #include<stdlib.h> void Er(); //将二进制数转换为其他三种进制数 void Ba(); //将八进制数转换为其他三种进制数 void Shi(); //将十进制数转换为其他三种进制数 void Shiliu();//将十六进制数转换为其他三种进制数 2.各个进制转换的函数 void Er(){//将二进制数转换为其他三种进制数 char str[128]; int b,i,j,length,sum=0; input: printf("请输入您需要转换的二进制数:\n"); scanf("%s",str); length=strlen(str); //length为字符长度 for(i=length-1;i>=0;i--){ if(str[i]!='0' && str[i]!='1'){ printf("Error\n"); printf("请输入正确的二进制数\n

函数+进制转换器

岁酱吖の 提交于 2019-12-04 04:38:27
一.程序运行截图 1. 2. 3. 4. 5. 6. 二.子函数代码展示及功能介绍 1.(除了十六进制)将其他进制转为十进制: int One(int choice, int number) { int sum = 0, count = 0; int value, j; int b; value = number; do { value /= 10; count++; } while (value > 0); value = number; for (j = 0;j < count; j++) { b = value % 10; sum = sum + b * pow(choice, j); value /= 10; } return sum; } 通过do-while计算其他进制的位数,再通过for循环的相加得到十进制的数值。 2.将十进制转为任意进制: void Two(int choice,int number) { int j, value; int a[1000], count = 0; value = number; while(value != 0) { a[count] = value % choice; value /= choice; count++; } for (j = count - 1;j >= 0; j--) { if (a[j] < 10)

进制转换器++

廉价感情. 提交于 2019-12-04 04:09:43
一.博客内容 1.运行截图 十进制转二进制 十进制转八进制 十进制转十六进制 二进制转八进制 二进制转十,十六进制 输入错误提示: 例子太多就不一个个列了。 二.函数介绍: 1.main 函数: int main() { int choice,i; for (i=1;;i++){ printf("十进制转换二进制请输入1\n"); printf("十进制转换八进制请输入2\n"); printf("十进制转换十六进制请输入3\n"); printf("二进制转换八进制请输入4\n"); printf("二进制转换十进制请输入5\n"); printf("二进制转换十六进制请输入6\n"); printf("十六进制转换十进制请输入7\n"); printf("结束请输入0\n"); scanf("%d", &choice); if (choice == 0)break; switch (choice) { case 1:ten_to_two(); break; case 2:ten_to_eight(); break; case 3:ten_to_sixteen(); break; case 4:two_to_eight(); break; case 5:two_to_ten(); break; case 6:two_to_sixteen(); break; case 7