十六进制

格式化字符串说明符

試著忘記壹切 提交于 2020-02-09 14:47:04
格式化字符串说明符 说明符 作用 %d 格式化整数 %x / %X 格式化 16 进制表示的数字 %g 格式化浮点型 %f 输出浮点数 %e 输出科学计数表示法 %0d 用于规定输出定长的整数,其中开头的数字 0 是必须的 %n.mg 表示数字 n 并精确到小数点后 m 位,除了使用 g 之外,还可以使用 e 或者 f,例如:使用格式化字符串 %5.2e 来输出 3.4 的结果为 3.40e+00 。 %v 按值的本来值输出 %+v 在 %v 基础上,对结构体字段名和值进行展开 %#v 输出 Go 语言语法格式的值 %T 输出 Go 语言语法格式的类型和值 %% 输出 % 本体 %b 整型以二进制方式显示 %o 整型以八进制方式显示 %d 整型以十进制方式显示 %x 整型以十六进制方式显示 %X 整型以十六进制、字母大写方式显示 %U Unicode 字符 %f 浮点数 %p 指针,十六进制方式显示 来源: https://www.cnblogs.com/pandaLIU/p/12286967.html

js escape,unescape解决中文乱码问题的方法

吃可爱长大的小学妹 提交于 2020-02-09 02:04:24
Js将字符串转换为特定的编码,使其能够被任意的计算机识别和读取 1.escape 方法 对 String 对象编码以便它们能在所有计算机上可读, escape(charString) 必选项 charstring 参数是要编码的任意 String 对象或文字。 说明 :   escape 方法返回一个包含了 charstring 内容的字符串值( Unicode 格式)。所有空格、标点、重音符号以 及 其他非 ASCII字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是"%20 " 。 字符值大于 255 的以 %uxxxx 格式存储。   注意 :escape 方法不能够用来对统一资源标示码 (URI) 进行编码。对其编码应使用 encodeURI和encodeURIComponent 方法。 2.unescape 方法 解码用 escape 方法进行了编码的 String 对象。 unescape(charstring) 必选项 charstring 参数是要解码的 String 对象。 说明 : unescape 方法返回一个包含 charstring 内容的字符串值。所有以 %xx 十六进制形式编码的字符都用 ASCII 字符集中等价的字符代替。 以 %uxxxx 格式(Unicode 字符)编码的字符用十六进制编码 xxxx 的

十六进制转八进制(进制关系)

淺唱寂寞╮ 提交于 2020-02-09 01:10:43
Description 给定n个十六进制正整数,输出它们对应的八进制数。 Input 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 Output 输出n行,每行为输入对应的八进制正整数。 Sample Input 2 39 123ABC Sample Output 71 4435274 注意 输入的十六进制数不会有前导0,比如012A。 输出的八进制数也不能有前导0。 提示 先将十六进制数转换成某进制数,再由某进制数转换成八进制。 解题思路: 首先先讲一些相关知识点 二进制转十六进制 二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。 从右到左 4位一切,例如 100111110110101,左边不满4位的可以用0补满 0100,1111,1011,01012,所以前面的二进制转为十六进制为 4FB5。 同理 二进制转八进制 ,是以3位一段,分别转换成八进制。 十六进制转换成二进制 反过来,当看到 FD时,迅速将它转换为二进制数方法 先转换F: 看到F,需知道它是15,然后15如何用8421凑呢?应该是8 + 4 + 2 + 1,所以四位全为1 :1111。 接着转换 D: 看到D,知道它是13,13如何用8421凑呢?应该是:8 + 4

进制转换总结

此生再无相见时 提交于 2020-02-05 11:05:06
文章目录 1 二进制与十进制之间的转换 1.1 十进制转二进制 1.2 二进制转十进制 2 二进制与八进制之间的转换 2.1 二进制转八进制 2.2 八进制转成二进制 3 二进制与十六进制之间的转换 3.1 二进制转十六进制 3.2 十六进制转二进制 4 十进制与(十六进制或八进制)之间的转换 4.1 十进制转八进制或者十六进制 4.2 八进制或者十六进制转成十进制 5 十六进制与八进制之间的转换 1 二进制与十进制之间的转换 1.1 十进制转二进制 方法为:十进制数 除2取余法 ,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。 1.2 二进制转十进制 方法为:把二进制数 按权展开、相加 即得十进制数。 2 二进制与八进制之间的转换 2.1 二进制转八进制 方法: 每3位二进制 数按权展开相加得到 1位八进制 数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。 2.2 八进制转成二进制 方法为:八进制数通过 除2取余法 ,得到二进制数,对 每个八进制为3个二进制 ,不足时在最左边 补零 。 3 二进制与十六进制之间的转换 3.1 二进制转十六进制 方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一. 3.2 十六进制转二进制 与八进制转二进制方法类似:十六进制数通过除2取余法,得到二进制数,对

十六进制转十进制,C语言

别等时光非礼了梦想. 提交于 2020-02-04 11:38:39
问题描述:输入一个十六进制的字符串,输出其对应的十进制整数 编译环境:vc++6.0 代码: # include <stdio.h> # include <stdlib.h> # include <math.h> /*输入一个十六进制的字符串,输出其对应的十进制整数*/ //方法:按位乘权相加 int converts ( char * str ) { char * p = str ; static int sum = 0 , len = 0 ; //len记录十六进制的长度 while ( * p ) //将指针移到最‘\0’的位置 p ++ , len ++ ; p = str ; //指针复位;指向str开头 do { if ( * p >= '0' && * p <= '9' ) sum + = ( int ) ( ( * p - '0' ) * pow ( 16 , ( len -- ) - 1 ) ) ; else if ( * p >= 'A' && * p <= 'F' ) sum + = ( int ) ( ( * p - 'A' + 10 ) * pow ( 16 , ( len -- ) - 1 ) ) ; else //十六进制数不规范 exit ( 0 ) ; p ++ ; } while ( * p ) ; return sum ; } int main

C语言 十进制数转十六进制数 进制转换

感情迁移 提交于 2020-02-04 08:14:01
问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。   给出一个非负整数,将它表示成十六进制的形式。    输入格式   输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647    输出格式   输出这个整数的16进制表示    样例输入 30 样例输出 1E 代码呈上: # include <stdio.h> # include <stdlib.h> int main ( ) { int n ; //输入的十进制数 int yu [ 200 ] ; //用来存放余数 int lenyu = 0 ; //余数数组的长度 char num [ 200 ] ; scanf ( "%d" , & n ) ; if ( n == 0 ) { yu [ 0 ] == 0 ; lenyu ++ ; } else { for ( int i = 0 ; n > 0 ; i ++ ) { yu [ i ] = n % 16 ; n = n / 16 ; lenyu ++ ; } } for ( int j = 0

(蓝桥杯)十六进制转八进制

假如想象 提交于 2020-02-03 03:22:52
十六进制转八进制 问题描述 给定n个十六进制正整数,输出它们对应的八进制数。 输入格式   输入的第一行为一个正整数n (1<=n<=10)。   接下来n行,每行一个由0 9、大写字母A F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式   输出n行,每行为输入对应的八进制正整数。   【注意】   输入的十六进制数不会有前导0,比如012A。   输出的八进制数也不能有前导0。 样例输入   2   39   123ABC 样例输出   71   4435274 问题分析和求解过程 刚看到这个问题的时候,因为前面已经做了一些十进制和十六进制相互转化的问题,所以没有仔细想,理所当然考虑将十六进制数转化为十进制,再转化为八进制。 然而把程序放入系统的时候显示运行错误,0分。看了下测试数据,我是真没想到,这题测试数据那么恐怖,应该是转十进制的运算量太大了,试了几次,也没改出来。下面是我这一思路的代码。(虽然也没通过,但还是贴出来看看) # include <iostream> # include <string.h> # include <math.h> using namespace std ; string a ; int b [ 100000 ] , c [ 100000 ] ; int main ( ) { int n , k ;

leetcode405

孤街浪徒 提交于 2020-02-02 05:48:23
static的用处 1). 在函数体,一个被声明为静态的变量在这一 函数被调用过程中维持其值不变。 2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个 本地的全局变量 。 3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这 个函数被限制在声明它的模块的本地范围内使用 。 unsigned的用处 1、signed是默认的,表示这个变量是有符号的,可以 存储整数和负数 。 2、 unsigned则需要显示给出表示这个变量,没有符号值能存储数的大小,而且不能表示正负 。 3、signed存储符号是有代价的,代价就是存储空间中的一个比特位专门用来存储符号,这一位不能表示数值。一般来说,同类型的signed能够存储的数的绝对值大小要小于undigned。 4、unsigned的作用就是将数字类型无符号化, 例如 int 型的范围:-2^31 ~ 2^31 - 1,而unsigned int的范围:0 ~ 2^32。 5、signed在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果 需声明无符号类型的话就需要在类型前加上unsigned 。 memset的用处 void *memset(void *s, int ch, size_t n); 函数解释

蓝桥杯 十六进制转八进制

淺唱寂寞╮ 提交于 2020-02-01 05:48:07
问题描述   给定n个十六进制正整数,输出它们对应的八进制数。 输入格式   输入的第一行为一个正整数n (1<=n<=10)。   接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式   输出n行,每行为输入对应的八进制正整数。    【注意 】   输入的十六进制数不会有前导0,比如012A。   输出的八进制数也不能有前导0。 样例输入   2   39   123ABC 样例输出   71   4435274 分析:一开始想先转换成十进制 再转换成八进制 但是题目中给的十六进制的数太大 就放弃了这个想法。 后来看了这位老哥的做法 http://www.tuicool.com/articles/22I3Ib 才知道原来要先转换成二进制 仔细想想确实 十六进制相当于4位的二进制 而八进制相当于3位的二进制 代码如下 #include <bits/stdc++.h> using namespace std; string a; string b; //string型方便操作,方便在前面添加和后面添加字符串 int c[10001000];//八进制都是数字,故直接定义为int; int main() { int n; cin>>n; while(n--) { a.clear();/

进制转换,原码补码反码

扶醉桌前 提交于 2020-01-30 20:10:37
一. 进制转换 1.其他进制到十进制的转换 比如: 十进制 十进制 123=100+20+3 =1* 10^2 + 2 *10^1 +3 * 10^0 =100+20+3 =123 八进制 十进制 123=1 *8^2+2 *8^1+3 *8^0 =64+16+3 =83 这里借用一位老师自己总结的方法: 系数:每一个位上的数据值本身就是系数 基数:x进制的基数就是x 权:针对每一个位上的数据进行编号,从右边,并且是从0开始编号,这个编号就是该位上的权值 结果=每一个位上的系数+基数^权次幂相加 2. 十进制到其他进制 除基取余,直到商为0,余数反转。 练习: 十进制 二进制 20/2=10……0 10/2=5……0 5/2=2……1 2/2=1……0 1/2=0……1 所以二进制为(0b)10100 那么有同学会问,如果x进制到y进制怎么转化呢? 回答:这里我们可以用十进制作为中间桥梁,再采用上述方法进行换算。 下面举个例子: 换算二进制到八进制 思路:(1)二进制到十进制,十进制到八进制 (2)拆分组合法 答:第一种方法:0b1011001=64+16+8+1=89 89/8=11……1 11/8=1……3 1/8=0……1 所以89=0131 第二种方法:三个一组,不够补0,换算成十进制 001 011 001 1 3 1 /* 不同进制数据表现 二进制:由0,1组成