图传化编程
‘壹’ 传化支付的钱能退回吗
您好,您的心情我的完全能够理解,还是可以追回来的,您可以选择在黑猫上投诉解决,投诉方法如下,1、黑猫已经在微信上上线了一个小程序,所以我们用手机就可以直接操作,操作方法也是非常简单的,一步一步按照提示来就好了。2、首先我们打开微信,然后再搜索栏“黑猫投诉”,然后就可以看到一个同名小程序。3、找到该程序之后,打开点击“投诉”,然后就会进入投诉界面,如果没有绑定手机的话,需要绑定一下手机号码,不绑定手机是没有办法进行下一步的,最重要的也是为了通知我们投诉的结果。4、在绑定了手机之后,就会弹出一个协议界面,仔细阅读协议之后点击同意,之后就会进入投诉界面了。5、在投诉界面输入商家信息,交易信息,订单编号以及维权金额。然后就会进入一个详细信息界面,这一步我们需要填写交易具体过程,最好可以上传图片证据,要是没有就只能输入详细经过和订单编号了,最好提供一些有效的证明。需要注意的是一定要提供真实有效的信息,虚假信息以及恶意投诉都是不可以的,希望我的回答对您有帮助!感谢,【摘要】
传化支付的钱能退回吗【提问】
您好,我是您的答主,《随遇而安》,有多年从事金融以及法律的工作经验,您的问题我已经看到,正在给您整理相关的答案,打字可能会需要一些时间,请您耐心等待,我将在5分钟时间内,提供给您最详细的解答,谢谢!【回答】
传化支付的钱能退回来吗【提问】
[挠头][挠头][挠头]【提问】
您好,请稍等【回答】
好的【提问】
您好,您的心情我的完全能够理解,还是可以追回来的,您可以选择在黑猫上投诉解决,投诉方法如下,1、黑猫已经在微信上上线了一个小程序,所以我们用手机就可以直接操作,操作方法也是非常简单的,一步一步按照提示来就好了。2、首先我们打开微信,然后再搜索栏“黑猫投诉”,然后就可以看到一个同名小程序。3、找到该程序之后,打开点击“投诉”,然后就会进入投诉界面,如果没有绑定手机的话,需要绑定一下手机号码,不绑定手机是没有办法进行下一步的,最重要的也是为了通知我们投诉的结果。4、在绑定了手机之后,就会弹出一个协议界面,仔细阅读协议之后点击同意,之后就会进入投诉界面了。5、在投诉界面输入商家信息,交易信息,订单编号以及维权金额。然后就会进入一个详细信息界面,这一步我们需要填写交易具体过程,最好可以上传图片证据,要是没有就只能输入详细经过和订单编号了,最好提供一些有效的证明。需要注意的是一定要提供真实有效的信息,虚假信息以及恶意投诉都是不可以的,希望我的回答对您有帮助!感谢,【回答】
如果您还有其他疑问,可以随时咨询我或者给我留言,我会第一时间回复您,【回答】
‘贰’ 建德新安化工为什么卖给传化
发展形成优势互补。
建德市财局作为股权持有者披露《股东持股变动报告书》,仅简单披露转让理由如下:在本次股权转让前对受让方的主体资格、资信情况、受让意图等已进行了合理调查和了解,认为传化集团具备收购新安股份国有股的主体资格和资金实力,可以和新安股份将来的发展形成优势互补。转让价格按2004年12月31日帐面净资产每股2.93元,溢价百分之21,即每股3.5453元,总转让价款2.40亿元。该时点上证指数2342点,新安股份股价8.94元。
2005年11月4日国有资产监督管理委员会对新安股份国有股转让出具批复“同意建德市财局将其持有的新安股份转让给传化集团有限公司。
‘叁’ 编程 取余运算
如果p比较小,算法如下:
for i:=1 to p do
b:=(b mod k)*b mod k;
现在p比较大,所以将p用二进制表示以寻求优化,设p=2^k0+2^k1....
则算法可化为:
for i:=1 to 2^k0 do ....
for i:=1 to 2^k1 do .....
....
现在要计算的是p^(2^k0+2^k1....) mod k
即p^2^(k0+k1+....) mod k
所以算法可化为:
(将p传化成2进制数放在binary数组中)
rest:=b;
for i:=1 to len do
if binary[i]=1 then
for j:=1 to i do rest:=(rest mod k)*(rest mod k) mod k;
该算法的时间复杂度为O((log2(n))^2),已经可以解决题目的问题
不过要继续优化也是可以的
我们观察上面的算法,可以发现
若k0>k1,那么在计算p^2^k0中已经计算了p^2^k1
所以j的循环是可以放入i循环中的
再经过优化后,算法就变成了下面的样子,就是你上面的程序:
rest:=1;
for i:=len downto 1 do begin
temp:=rest*rest mod k;
if binary[i]=1 then
rest:=(b mod k*temp) mod k
else rest:=temp;
end;
算法可以这样理解:
比如现在要计算p^2^(m+n0)
设当前计算到了二进制数p的第m位,即i=len-m+1,且binary[m]=1,之前已经计算了b^2^n1
(就相当于要计算b^2^m)
现在将b^2^n1乘上b,就变成b^2^n1*b
这样在接下来的循环中,还要再循环m次,循环结束后就变成了(b^2^n1*b)^2^m
即p^2^(m+n0)
这样就满足了原来的要求
说得不是很清楚,请见谅
‘肆’ 请帮忙把此图片传化为链接。可以吗
图片转为连接方法:
鼠标拖到图片上,右键点击,属性,复制连接。
‘伍’ 背部对应的五脏六腑图口诀
背部对应的五脏六腑图口诀
背部对应的五脏六腑图口诀。我们人体内有着非常多的器官,而这些器官组成了我们身体内的五脏六腑。接下来就由我带大家详细了解背部对应的五脏六腑图口诀的相关内容。
背部对应的五脏六腑图口诀1
肺部娇嫩最上面,左边为心右为肝,
下面左脾右是胆,左边是胃右小肠,
臀上左肾加膀胱,右边子宫和大肠。
后背为五脏六腑的反射区,从颈下二寸开始,以手掌大小为一个反射区,向下依次顺序为肺区、心区、肝区、脾区、肾区、排泄区、生殖区,共为七个反射区。
体雕目测法
(1)背部肤色不均属肝胆排毒功能下降。
(2)背部毛孔粗大为体质虚寒,湿气重,水分滞留体内,引起手脚冰凉怕冷,下身肿胀等症状。
肺区诊断
(1)拇指推肺区膀胱经,出现微血管扩张的现象。
(2) 背部长痘为肺风粉刺,体质燥热,多为肺阴虚。
(3)便秘宿便,鼻咽喉不适,面部毛孔粗大。
备注:胖人多痰,瘦人多火。
心区诊断
(1)拇指推心区内膀胱经,出现发红现象,心火旺。
(2)眉心长痘,面部潮红多为虚火上炎。
备注:体胖者胸闷气短,体瘦者失眠多梦。
肝区诊断
(1)肝区肤色不均发青为肝胆排毒功能下降。
(2)肝区突出为肝功能下降。
(3)眼干涩充血,眼袋大,视力下降为肝火旺盛。
脾区诊断
(1)脾区肤色发黄为脾胃不和。
(2)口腔溃疡,口周、额头易生红色痤疮为脾胃实热。
(3)皮肤松弛,虚胖者多为脾气不足,舌苔黄腻,便秘实胖者多胃火旺盛。
肾区诊断
(1)肾区凹陷,腰部颜色发黑,多为肾水不足。
(2)面部易生乌云状片黑斑,手脚冰凉怕冷为肾阳虚。
(3)听力下降耳鸣,腰酸,手脚燥热怕热为肾阴虚。
生殖区诊断
(1)生殖区凸起:月经量少,经血色暗血块,痛经。
(2)生殖区凹陷:面部易生黑斑,月经量多提前或退后,多为宫寒宫冷症状。
背部对应的五脏六腑图口诀2
1、五脏六腑在背部的相匹配地区
背部从颈下二寸刚开始共分成七个脚底反射区,按从上向下的次序先后为肺区、心区、肝部、脾区、肾区、代谢区、生殖区这七个地区,每一个脚底反射区均为手掌心尺寸。
2、背部各脚底反射区的情况及表明的问题
(1)肺区:假如肺脏脚底反射区的皮肤展现脸上毛孔粗大、色素沉着的情况,一般表明肺功能检查不够,易引起鼻咽部问题,如鼻炎、咽炎等。
(2)心区:心区皮肤脸上毛孔粗大、色素沉着或起痘的人心火旺盛,非常容易心悸心慌、睡眠浅且梦多、手脚冰凉捂不暖,经常出现心思。
(3)肝部:肝部有显着突起的人一般肝火旺,情绪不稳定或非常容易抑郁症,面色暗黄,眼圈发红发涩,人体自身祛毒工作能力弱,非常容易患洒精肝、脂肪肝、胆结石等病症。
(4)脾区:脾区皮肤暗黄则表明肠胃不适,通常有口臭,肌肉无力延展性差、非常容易产生淤血。
(5)肾区:肾区皮肤有变黑、色素沉着等问题的人通常有较比较严重的黑眼圈和眼袋,睡眠较弱,非常容易尿急尿频,记忆力下降,非常容易受到惊吓。
(6)代谢区:代谢区皮肤出现起痘、暗黄等问题通常表明肠胃不太好,需要开展调养。
(7)生殖区:该地皮肤发白、变黑、起痘通常表明有内分泌失衡、月经不调、宫寒、盆腔炎等妇科问题,而且下肢循环系统并不是非常好。
3、背部肌肤护理
除开根据调养身子改进背部皮肤外,一些皮肤问题也跟医护不善相关。以便有着极致的背部皮肤情况,大伙儿可以用盐水洗澡,但要留意不必用劲磨擦,以防损害皮肤。单方精油具备优良的消炎和肌肤护理功效,我们能够在洗完澡后开展推拿,要是没有人帮助得话能够定期去美容店开展医护。还需要留意的是,饮食搭配情况也对背部长痘问题有影响,当背部有较多脸上痘痘时,应改变饮食结构,以口味淡主导,少吃过度辛辣食物和油腻感的食材。
背部不但是一个呈现女士幸福的位置,也是身心健康是否的气象图,根据背部的`情况就可以了解人体什么地方出现了问题。当发觉这种问题时,我们就需要立即采取有效,根据饮食疗法和外界医护去改进背部皮肤情况和身心健康情况。
背部对应的五脏六腑图口诀3
五脏六腑的五行属性
木生火,即肝木济心火,肝藏血,心主血脉,肝藏血功能正常有助于心主血脉功能的正常发挥。火生土,即心火温脾土,心主血脉、主神志,脾主运化、主生血统血,心主血脉功能正常,血能营脾;脾才能发挥主运化、生血、统血的功能。土生金,即脾土助肺金,脾能益气,化生气血,转输精微以充肺,促进肺主气的功能,使之宣肃正常。金生水,即肺金养肾水,肺主清肃,肾主藏精,肺气肃降有助于肾藏精、纳气、主水之功。水生木,即肾水滋肝木,肾藏精,肝藏血,肾精可化肝血,以助肝功能的正常发挥。这种五脏相互滋生的关系,就是用五行相生理论来阐明的。
五行:木 火 土 金 水五脏:肝 心 脾 肺 肾五味:酸 苦 甘 辛 咸五色:青 赤 黄 白 黑五脏有:肝 心 脾 肺 肾六腑:胆 小肠 胃 大肠 三焦 膀胱
五脏六腑是什么
五脏--肝、心、脾、肺、肾。心主血脉是全身血脉的总枢纽,心通过血脉将气血运送于周身;心又主神志,是精神、意识和思维活动的中心,在人体中处于最高主导地位。肝主疏泄,能调节人的情志活动,协助脾胃消化。肝又藏血,有贮藏血液、调节血量的作用。脾主运化,促进饮食物的消化、吸收和营养物的输
五脏六腑指什么
六腑--胆、小肠、胃、大肠、膀胱、三焦。六腑的生理功能具体为:饮食物入胃,经胃的腐熟,下移小肠,进一步消化,并泌别清浊,吸收其中的精微物质,大肠接受小肠中的食物残渣,吸收其中的水分,其余的糟粕经燥化与传导作用,排出体外,成为粪便。在饮食物消化、吸收过程中,胆排泄胆汁入小肠,以助消化。三焦不但是传化的通道,更重要的是主持诸气,推动了传化功能的正常进行。
‘陆’ 怎么把PDF格式的文件传化成word格式的
pdf转换成word最专业的软件是solid converter pdf 6.0,转换效果极佳,带有环绕图片的文字和表格也不在话下,基本不用再次编辑。到我的网络空间下载正式版的solid converter pdf 6.0吧。
‘柒’ 在fluent三维处理中,怎么将某一截面的速度云图传化为XY坐标系
不知道你用什么版本,不过都可以从菜单栏中实现,所以我就以低版本的6.3的方法(但用的是14.0,6.3适用)为例。13.0~15.0还可以从new surface中完成。
1. 从Surface菜单中选择Plane...
你还可以输出该面的数据用TACPLOT进行处理。
另外,如果你想把这个二维云图展示成三维云图效果,一般需要额外特殊的开发工具编程实现,很难。如果是矩形模型和结构网格,这样数据就是网格节点数据,可以很方便地从导出的二维截面云图数据完善成三维云图,比如用MATLAB就可以绘图。如果你的模型不是矩形模型和结构网格,节点的坐标错综复杂,二维截面云图导出的数据无论如可不可能直接绘制三维云图。
希望对你有帮助。
‘捌’ 在fluent三维处理中,怎么将某一截面的速度云图传化为XY坐标系
1、在fluent三维处理中,直接确定需要将速度云图传化为XY坐标系的某一截面。
‘玖’ 在计算机原理中,二进制传化为八进制,怎么做
二进制、八进制、十六进制转换为十进制的转换方法:二进制、八进制、十六进制转换为十进制----------按位权展开。二进制转换十进制二进制数第0位的权值是2的0次方,第1位的权值是2的1次方…… 例如,设有一个二进制数:0110 0100,转换为10进制为: 下面是竖式: 0110 0100 换算成 十进制 第0位 0 x 2^0 = 0 第1位 0 x 2^1 = 0 第2位 1 x 2^2 = 4 第3位 0 x 2^3 = 0 第4位 0 x 2^4 = 0 第5位 1 x 2^5 = 32 第6位 1 x 2^6 = 64 第7位 0 x 2^7 = 0 -------------------------- (0110 0100)B=(100)D注:数字后面相应的字母表示不同的进位制。B表示二进制,O表示八进制,D表示十进制,H表示十六进制。八进制转换十进制八进制就是逢8进1。 八进制数采用 0~7这八数来表达一个数。 八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方…… 所以,设有一个八进制数:1507,转换为十进制为: 用竖式表示: 1507换算成十进制。 第0位 7 x 8^0 = 7 第1位 0 x 8^1 = 0 第2位 5 x 8^2 = 320 第3位 1 x 8^3 = 512 -------------------------- (1507)O=(839)D 同样,我们也可以用横式直接计算: 7 X 8^0 + 0 X 8^1 + 5 X 8^2 + 1 x 8^3 = (839)D 结果是,八进制数1507 转换成十进制数为 839十六进制转换为十进制(ABC.8C)H=10x16^2+11x16^1+12x16^0+8x16^-1+12x16^-2=2560+176+12+0.5+0.046875=(2748.546875)D十进制转换为二进制、八进制、十六进制1.整数部分除R取余例:(125)D=(1111101)B注:余数中最后得到的余数为最高位,最先得到的余数为最低位,从高到低依次排列。2.小数部分乘R取整例:(0.25)D0.25X 2_______________0.50 (整数部分0为高位) X 2 ↓_______________ ↓1.00 (整数部分1为低位)(0.25)D=(0.01)B注:整数的转换是精确的,小数的转换可能出现无穷小数或循环小数的情况。此时需要进行舍入处理以截断,所以小数的转换可能略有偏差。箭头表示由高位到低位的趋势。 二进制和十进制转换十进制与二进制转换之相互算法
十进制转二进制:
用2辗转相除至结果为1
将余数和最后的1从下向上倒序写 就是结果
例如302
302/2 = 151 余0
151/2 = 75 余1
75/2 = 37 余1
37/2 = 18 余1
18/2 = 9 余0
9/2 = 4 余1
4/2 = 2 余0
2/2 = 1 余0
故二进制为100101110
二进制转十进制
从最后一位开始算,依次列为第0、1、2...位
第n位的数(0或1)乘以2的n次方
得到的结果相加就是答案
例如:01101011.转十进制:
第0位:1乘2的0次方=1
1乘2的1次方=2
0乘2的2次方=0
1乘2的3次方=8
0乘2的4次方=0
1乘2的5次方=32
1乘2的6次方=64
0乘2的7次方=0
然后:1+2+0
+8+0+32+64+0=107.
二进制01101011=十进制107. -----------------------二进制中最后一个数字是一,转换成十进制则是基数。
一、二进制数转换成十进制数
由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。
二、十进制数转换为二进制数
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
1. 十进制整数转换为二进制整数
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
2.十进制小数转换为二进制小数
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
1.二进制与十进制的转换
(1)二进制转十进制<BR>方法:"按权展开求和"
例:
(1011.01)2 =(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10
=(8+0+2+1+0+0.25)10
=(11.25)10
(2)十进制转二进制
· 十进制整数转二进制数:"除以2取余,逆序输出"
例: (89)10=(1011001)2
2 89
2 44 …… 1
2 22 …… 0
2 11 …… 0
2 5 …… 1
2 2 …… 1
2 1 …… 0
0 …… 1
· 十进制小数转二进制数:"乘以2取整,顺序输出"
例:
(0.625)10= (0.101)2
0.625
X 2
1.25
X 2
0.5
X 2
1.0
2.八进制与二进制的转换
例:将八进制的37.416转换成二进制数:
37 . 4 1 6
011 111 .100 001 110
即:(37.416)8 =(11111.10000111)2
例:将二进制的10110.0011 转换成八进制:
0 1 0 1 1 0 . 0 0 1 1 0 0
2 6 . 1 4
即:(10110.011)2 =(26.14)8
3.十六进制与二进制的转换<BR>例:将十六进制数5DF.9 转换成二进制:
5 D F . 9
0101 1101 1111.1001
即:(5DF.9)16 =(10111011111.1001)2
例:将二进制数1100001.111 转换成十六进制:
0110 0001 . 1110
6 1 . E
即:(1100001.111)2 =(61.E)16 ascii码ascii码全称是美国标准信息交换码,它是定义一个标准�员慵扑慊�芨�玫氖侗鹦畔ⅰ�在ascii中定义为01000001,也就是十进制65,有了这个标准后,当我们输入A时,计算机就可以通过ascii码知道输入的字符的二进制编码是01000001。而没有这样的标准,我们就必须自己想办法告诉计算机我们输入了一个A;没有这样的标准,我们在别的机器上就需要重新编码以告诉计算机我们要输入A。ascii码指的不是十进制,是二进制。只是用十进制表示习惯一点罢了,比如在ascii码中,A的二进制编码为01000001,如果用十进制表示是65,用十六进制表示就是41H。
在ascii码表中,只包括了一些字符、数字、标点符号的信息表示,这主要是因为计算机是美国发明的,在英文下面,我们使用ascii表示就足够了!但是在汉字输入下面,用ascii码就不能表示了,而汉字只是中国的通用表示,所以如果我们要在计算机中输入汉字,就必须有一个像ascii码的标准来表示每一个汉字,这就是中国的汉字国标码,它定义了汉字在计算机中的一个表示标准。通过这个标准,但我们输入汉字的时候,我们的输入码就转换为区位码,通过唯一的区位码得到这个汉字的字形码并显示出来。当然汉字的区位码在计算机中也是用二进制表示的!
回答不全的地方,仅供参考!
二进制数转换为十进制数
二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……
所以,设有一个二进制数:0110 0100,转换为10进制为:
下面是竖式:
0110 0100 换算成 十进制
第0位 0 * 20 = 0
第1位 0 * 21 = 0
第2位 1 * 22 = 4
第3位 0 * 23 = 0
第4位 0 * 24 = 0
第5位 1 * 25 = 32
第6位 1 * 26 = 64
第7位 0 * 27 = 0 +
---------------------------
100
用横式计算为:
0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100
0乘以多少都是0,所以我们也可以直接跳过值为0的位:
1 * 22 + 1 * 23 + 1 * 25 + 1 * 26 = 100
6.2.2 八进制数转换为十进制数
八进制就是逢8进1。
八进制数采用 0~7这八数来表达一个数。
八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……
所以,设有一个八进制数:1507,转换为十进制为:
用竖式表示:
1507换算成十进制。
第0位 7 * 80 = 7
第1位 0 * 81 = 0
第2位 5 * 82 = 320
第3位 1 * 83 = 512 +
--------------------------
839
同样,我们也可以用横式直接计算:
7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839
结果是,八进制数 1507 转换成十进制数为 839
6.2.3 八进制数的表达方法
C,C++语言中,如何表达一个八进制数呢?如果这个数是 876,我们可以断定它不是八进制数,因为八进制数中不可能出7以上的阿拉伯数字。但如果这个数是123、是567,或12345670,那么它是八进制数还是10进制数,都有可能。
所以,C,C++规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制。这就是八进制数在C、C++中的表达方法。
由于C和C++都没有提供二进制数的表达方法,所以,这里所学的八进制是我们学习的,CtC++语言的数值表达的第二种进制法。
现在,对于同样一个数,比如是100,我们在代码中可以用平常的10进制表达,例如在变量初始化时:
int a = 100;
我们也可以这样写:
int a = 0144; //0144是八进制的100;一个10进制数如何转成8进制,我们后面会学到。
千万记住,用八进制表达时,你不能少了最前的那个0。否则计算机会通通当成10进制。不过,有一个地方使用八进制数时,却不能使用加0,那就是我们前面学的用于表达字符的“转义符”表达法。
6.2.4 八进制数在转义符中的使用
我们学过用一个转义符'\'加上一个特殊字母来表示某个字符的方法,如:'\n'表示换行(line),而'\t'表示Tab字符,'\''则表示单引号。今天我们又学习了一种使用转义符的方法:转义符'\'后面接一个八进制数,用于表示ASCII码等于该值的字符。
比如,查一下第5章中的ASCII码表,我们找到问号字符(?)的ASCII值是63,那么我们可以把它转换为八进值:77,然后用 '\77'来表示'?'。由于是八进制,所以本应写成 '\077',但因为C,C++规定不允许使用斜杠加10进制数来表示字符,所以这里的0可以不写。
事实上我们很少在实际编程中非要用转义符加八进制数来表示一个字符,所以,6.2.4小节的内容,大家仅仅了解就行。
6.2.5 十六进制数转换成十进制数
2进制,用两个阿拉伯数字:0、1;
8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;
10进制,用十个阿拉伯数字:0到9;
16进制,用十六个阿拉伯数字……等等,阿拉伯人或说是印度人,只发明了10个数字啊?
16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。字母不区分大小写。
十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……
所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。
假设有一个十六进数 2AF5, 那么如何换算成10进制呢?
用竖式计算:
2AF5换算成10进制:
第0位: 5 * 160 = 5
第1位: F * 161 = 240
第2位: A * 162 = 2560
第3位: 2 * 163 = 8192 +
-------------------------------------
10997
直接计算就是:
5 * 160 + F * 161 + A * 162 + 2 * 163 = 10997
(别忘了,在上面的计算中,A表示10,而F表示15)
现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。
假设有人问你,十进数 1234 为什么是 一千二百三十四?你尽可以给他这么一个算式:
1234 = 1 * 103 + 2 * 102 + 3 * 101 + 4 * 100
6.2.6 十六进制数的表达方法
如果不使用特殊的书写形式,16进制数也会和10进制相混。随便一个数:9876,就看不出它是16进制或10进制。
C,C++规定,16进制数必须以 0x开头。比如 0x1表示一个16进制数。而1则表示一个十进制。另外如:0xff,0xFF,0X102A,等等。其中的x也也不区分大小写。(注意:0x中的0是数字0,而不是字母O)
以下是一些用法示例:
int a = 0x100F;
int b = 0x70 + a;
至此,我们学完了所有进制:10进制,8进制,16进制数的表达方式。最后一点很重要,C/C++中,10进制数有正负之分,比如12表示正12,而-12表示负12,;但8进制和16进制只能用达无符号的正整数,如果你在代码中里:-078,或者写:-0xF2,C,C++并不把它当成一个负数。
6.2.7 十六进制数在转义符中的使用
转义符也可以接一个16进制数来表示一个字符。如在6.2.4小节中说的 '?' 字符,可以有以下表达方式:
'?' //直接输入字符
'\77' //用八进制,此时可以省略开头的0
'\0x3F' //用十六进制
同样,这一小节只用于了解。除了空字符用八进制数 '\0' 表示以外,我们很少用后两种方法表示一个字符。
6.3 十进制数转换到二、八、十六进制数
6.3.1 10进制数转换为2进制数
给你一个十进制,比如:6,如果将它转换成二进制数呢?
10进制数转换成二进制数,这是一个连续除2的过程:
把要转换的数,除以2,得到商和余数,
将商继续除以2,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。
听起来有些糊涂?我们结合例子来说明。比如要转换6为二进制数。
“把要转换的数,除以2,得到商和余数”。
那么:
要转换的数是6, 6 ÷ 2,得到商是3,余数是0。 (不要告诉我你不会计算6÷3!)
“将商继续除以2,直到商为0……”
现在商是3,还不是0,所以继续除以2。
那就: 3 ÷ 2, 得到商是1,余数是1。
“将商继续除以2,直到商为0……”
现在商是1,还不是0,所以继续除以2。
那就: 1 ÷ 2, 得到商是0,余数是1 (拿笔纸算一下,1÷2是不是商0余1!)
“将商继续除以2,直到商为0……最后将所有余数倒序排列”
好极!现在商已经是0。
我们三次计算依次得到余数分别是:0、1、1,将所有余数倒序排列,那就是:110了!
6转换成二进制,结果是110。
把上面的一段改成用表格来表示,则为:
被除数 计算过程 商 余数
6 6/2 3 0
3 3/2 1 1
1 1/2 0 1
(在计算机中,÷用 / 来表示)
如果是在考试时,我们要画这样表还是有点费时间,所更常见的换算过程是使用下图的连除:
(图:1)
请大家对照图,表,及文字说明,并且自已拿笔计算一遍如何将6转换为二进制数。
说了半天,我们的转换结果对吗?二进制数110是6吗?你已经学会如何将二进制数转换成10进制数了,所以请现在就计算一下110换成10进制是否就是6。
6.3.2 10进制数转换为8、16进制数
非常开心,10进制数转换成8进制的方法,和转换为2进制的方法类似,惟一变化:除数由2变成8。
来看一个例子,如何将十进制数120转换成八进制数。
用表格表示:
被除数 计算过程 商 余数
120 120/8 15 0
15 15/8 1 7
1 1/8 0 1
120转换为8进制,结果为:170。
非常非常开心,10进制数转换成16进制的方法,和转换为2进制的方法类似,惟一变化:除数由2变成16。
同样是120,转换成16进制则为:
被除数 计算过程 商 余数
120 120/16 7 8
7 7/16 0 7
120转换为16进制,结果为:78。
请拿笔纸,采用(图:1)的形式,演算上面两个表的过程。
6.4 二、十六进制数互相转换
二进制和十六进制的互相转换比较重要。不过这二者的转换却不用计算,每个C,C++程序员都能做到看见二进制数,直接就能转换为十六进制数,反之亦然。
我们也一样,只要学完这一小节,就能做到。
首先我们来看一个二进制数:1111,它是多少呢?
你可能还要这样计算:1 * 20 + 1 * 21 + 1 * 22 + 1 * 23 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。
然而,由于1111才4位,所以我们必须直接记住它每一位的权值,并且是从高位往低位记,:8、4、2、1。即,最高位的权值为23 = 8,然后依次是 22 = 4,21=2, 20 = 1。
记住8421,对于任意一个4位的二进制数,我们都可以很快算出它对应的10进制值。
下面列出四位二进制数 xxxx 所有可能的值(中间略过部分)
仅4位的2进制数 快速计算方法 十进制值 十六进值
1111 = 8 + 4 + 2 + 1 = 15 F
1110 = 8 + 4 + 2 + 0 = 14 E
1101 = 8 + 4 + 0 + 1 = 13 D
1100 = 8 + 4 + 0 + 0 = 12 C
1011 = 8 + 4 + 0 + 1 = 11 B
1010 = 8 + 0 + 2 + 0 = 10 A
1001 = 8 + 0 + 0 + 1 = 10 9
0001 = 0 + 0 + 0 + 1 = 1 1
0000 = 0 + 0 + 0 + 0 = 0 0
二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。
如(上行为二制数,下面为对应的十六进制):
1111 1101 , 1010 0101 , 1001 1011
F D , A 5 , 9 B
反过来,当我们看到 FD时,如何迅速将它转换为二进制数呢?
先转换F:
看到F,我们需知道它是15(可能你还不熟悉A~F这五个数),然后15如何用8421凑呢?应该是8 + 4 + 2 + 1,所以四位全为1 :1111。
接着转换 D:
看到D,知道它是13,13如何用8421凑呢?应该是:8 + 2 + 1,即:1011。
所以,FD转换为二进制数,为: 1111 1011
由于十六进制转换成二进制相当直接,所以,我们需要将一个十进制数转换成2进制数时,也可以先转换成16进制,然后再转换成2进制。
比如,十进制数 1234转换成二制数,如果要一直除以2,直接得到2进制数,需要计算较多次数。所以我们可以先除以16,得到16进制数:
被除数 计算过程 商 余数
1234 1234/16 77 2
77 77/16 4 13 (D)
4 4/16 0 4
结果16进制为: 0x4D2
然后我们可直接写出0x4D2的二进制形式: 0100 1011 0010。
其中对映关系为:
0100 -- 4
1011 -- D
0010 -- 2
同样,如果一个二进制数很长,我们需要将它转换成10进制数时,除了前面学过的方法是,我们还可以先将这个二进制转换成16进制,然后再转换为10进制。
下面举例一个int类型的二进制数:
01101101 11100101 10101111 00011011
我们按四位一组转换为16进制: 6D E5 AF 1B