c 进制转换换说的取商于0到底什么弄啊

博客访问: 2841
博文数量: 2
注册时间:
ITPUB论坛APP
ITPUB论坛APP
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Linux
我是一只很菜很菜的鸟,脑子笨笨,又懒惰又不上进,又没有基础,就算曾经接触过那么一点点也早已忘的一干二净,为了我的人生不输给自己。那么就开始克服自己的毛病缺点,开始奋斗吧。先从进制转换学起,因为最近在上oracle的培训课,讲到了dump函数,可无论如何有些知识点我还是不理解,于是决定从进制转换下手。今天在百度文库上学习了各进制之间如何转换。下面是地址。下面是摘取的部分内容
****前言很完整的2、8、10、16进制转换方法
最近在研究C语言,因为要用到各进制间转换,所以收集了一些资料…
这是一节“前不着村后不着店”的课。不同进制之间的转换纯粹是数学上的计算。不过,你不必担心会有么复杂,无非是乘或除的计算。
生活中其实很多地方的计数方法都多少有点不同进制的影子。
比如我们最常用的10进制,其实起源于人有10个指头。如果我们的祖先始终没有摆脱手脚不分的境况,我想我们现在一定是在使用20进制。
至于二进制……没有袜子称为0只袜子,有一只袜子称为1只袜子,但若有两袜子,则我们常说的是:1双袜子。
生活中还有:七进制,比如星期。十六进制,比如小时或“一打”,六十进制,比如分钟或角度……我们找到问号字符(?)的ASCII值是63,那么我们可以把它转换为八进值:77,然后用 ‘\77′来表示’?'。由于是八进制,所以本应写成 ‘\077′,但因为C,C++规定不允许使用斜杠加10进制数来表示字符,所以这里的0可以不写。
事实上我们很少在实际编程中非要用转义符加八进制数来表示一个字符,所以,小节的内容,大家仅仅了解就行。斜体字部分不理解****各进制的表示方法****十六进制数转换成十进制数
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。字母不区分大小写。****16进制转成10进制的计算方法****
十六进制数的第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 * 16^0 = 5 & & & &
第1位: F * 16^1 = 240
第2位: A * 16^2 = 2560 & & &
第位:&240+2560+直接计算就是:
5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 1099716^2就是16的平方,16^3就是16的3次幂(别忘了,在上面的计算中,A表示10,而F表示15)&
现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。
假设有人问你,十进数 1234 为什么是 一千二百三十四?你尽可以给他这么一个算式:
1234 = 1 * 10^3 + 2 * 10^2 + 3 * 10^1 + 4 * 10^0
&*****十六进制数的表达方法******&
如果不使用特殊的书写形式,16进制数也会和10进制相混。随便一个数:9876,就看不出它是16进制或10进制。
&C,C++规定,16进制数必须以 0x开头。比如 0×1表示一个16进制数。而1则表示一个十进制。另外如:0xff,0xFF,0X102A,等等。其中的x也也不区分大小写。(注意:0x中的0是数字0,而不是字母O)
&以下是一些用法示例:
&int a = 0×100F;
&int b = 0×70 +
&至此,我们学完了所有进制:10进制,8进制,16进制数的表达方式。最后一点很重要,C/C++中,10进制数有正负之分,比如12表示正12,而-12表示负12,;但8进制和16进制只能用达无符号的正整数,如果你在代码中里:-078,或者写:-0xF2,C,C++并不把它当成一个负数。*****十六进制数在转义符中的使用****&
转义符也可以接一个16进制数来表示一个字符。如在6.2.4小节中说的
‘?’ 字符,可以有以下表达方式:
&‘?’&&&& //直接输入字符
&‘\77′&& //用八进制,此时可以省略开头的0&
‘\0×3F’ //用十六进制&
同样,这一小节只用于了解。除了空字符用八进制数 ‘\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。&
把上面的一段改成用表格来表示,则为:&
(在计算机中,÷用 / 来表示)&
如果是在考试时,我们要画这样表还是有点费时间,所更常见的换算过程是使用下图的连除:
&(图:1)&
请大家对照图,表,及文字说明,并且自已拿笔计算一遍如何将6转换为二进制数。&
说了半天,我们的转换结果对吗?二进制数110是6吗?你已经学会如何将二进制数转换成10进制数了,所以请现在就计算一下110换成10进制是否就是6。6.3.2 10进制数转换为8、16进制数
非常开心,10进制数转换成8进制的方法,和转换为2进制的方法类似,惟一变化:除数由2变成8。
来看一个例子,如何将十进制数120转换成八进制数。
用表格表示:
120转换为8进制,结果为:170。
非常非常开心,10进制数转换成16进制的方法,和转换为2进制的方法类似,惟一变化:除数由2变成16。
同样是120,转换成16进制则为:
120转换为16进制,结果为:78。&
请拿笔纸,采用(图:1)的形式,演算上面两个表的过程。&
******6.4 二、十六进制数互相转换******&
二进制和十六进制的互相转换比较重要。不过这二者的转换却不用计算,每个C,C++程序员都能做到看见二进制数,直接就能转换为十六进制数,反之亦然。&
我们也一样,只要学完这一小节,就能做到。
首先我们来看一个二进制数:1111,它是多少呢?
你可能还要这样计算:1 * 2^0 + 1 * 2^1 + 1 * 2^2 + 1 * 2^3 = 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
+ 0 + 2 + 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位一段,分别转换为十六进制。
&如(上行为二制数,下面为对应的十六进制):
&F&& &D&& ,
&反过来,当我们看到 FD时,如何迅速将它转换为二进制数呢?
&先转换F:
&看到F,我们需知道它是15(可能你还不熟悉A~F这五个数),然后15如何用8421凑呢?应该是8 + 4 + 2 + 1,所以四位全为1 :1111。
&接着转换 D:
&看到D,知道它是13,13如何用8421凑呢?应该是:8 +
2 + 1,即:1011。
&所以,FD转换为二进制数,为:
&由于十六进制转换成二进制相当直接,所以,我们需要将一个十进制数转换成2进制数时,也可以先转换成16进制,然后再转换成2进制。
&比如,十进制数 1234转换成二制数,如果要一直除以2,直接得到2进制数,需要计算较多次数。所以我们可以先除以16,得到16进制数:
结果16进制为: 0×4D2
&然后我们可直接写出0×4D2的二进制形式: 10。
&其中对映关系为:
&0100 — 4
&1011 — D
&0010 — 2
&同样,如果一个二进制数很长,我们需要将它转换成10进制数时,除了前面学过的方法是,我们还可以先将这个二进制转换成16进制,然后再转换为10进制。
&下面举例一个int类型的二进制数:
&我们按四位一组转换为16进制: 6D E5 AF 1B&比如:二进制数1111 & 1111转换成16进制为:0xFF转换成十进制是:255,第0位:&1 * 2^0 = 1 & & & &第1位:&1 * 2^1 = 2第2位:&1 * 2^2 = 4& & &第位:1 * 2^第4位:&1 * 2^4 = 16 & & & &第5位:&1 * 2^5 = 32第6位:&1 * 2^6 = 64 & & &第位:1 * 2^而不是将 分成两个四位分别来计算然后相加 15+15=30,这样算是不对的。像上面那样8位连在一起计算才正确。
&*****6.5 原码、反码、补码******&
结束了各种进制的转换,我们来谈谈另一个话题:原码、反码、补码。
我们已经知道计算机中,所有数据最终都是使用二进制数表达。&
我们也已经学会如何将一个10进制数如何转换为二进制数。&
不过,我们仍然没有学习一个负数如何用二进制表达。&
比如,假设有一 int 类型的数,值为5,那么,我们知道它在计算机中表示为:
5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。&
现在想知道,-5在计算机中如何表示?&
在计算机中,负数以其正值的补码形式表达。
什么叫补码呢?这得从原码,反码说起。
原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。
是 5的 原码。
反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。&
取反操作指:原为1,得0;原为0,得1。(1变0; 0变1)&
比如:将00 每一位取反,得11 。
反码是相互的,所以也可称:
互为反码。
补码:反码加1称为补码。
也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。
的反码是:11 。
那么,补码为:
所以,-5 在计算机中表达为:11111
11011。转换为十六进制:0xFFFFFFFB。
再举一例,我们来看整数-1在计算机中如何表示。
假设这也是一个int类型,那么:&
1、先取1的原码:
2、得反码:&
3、得补码:&&&& 11 &
可见,-1在计算机里用二进制表达就是全1。16进制为:0xFFFFFF。&
一切都是纸上说的……说-1在计算机里表达为0xFFFFFF,我能不能亲眼看一看呢?当然可以。利用C++ Builder的调试功能,我们可以看到每个变量的16进制值。
阅读(1239) | 评论(0) | 转发(0) |
上一篇:没有了
下一篇:没有了
相关热门文章
给主人留下些什么吧!~~
请登录后评论。二进制与十进制间的转换方法(图文教程)
我的图书馆
二进制与十进制间的转换方法(图文教程)
本文转自:一、的转换二进制:要点:除二取余,倒序排列:将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取将除得的余数,即换算为的结果例如把52换算成二进制数,计算结果如图:& 52除以2得到的余数依次为:0、0、1、0、1、1,倒序排列,所以52对应的二进制数就是110100。由于内部表示数的字节单位都是定长的,以2的幂次展开,或者8位,或者16位,或者32位....。于是,一个二进制数用计算机表示时,位数不足2的幂次时,高位上要补足若干个0。本文都以8位为例。那么:(52)10=()2二、负整数转换为二进制要点:取反加一解释:将该负整数对应的正整数先转换成二进制,然后对其&#8220;取补&#8221;,再对取补后的结果加1即可例如要把-52换算成二进制:<font color=#.先取得52的二进制:<font color=#.对所得到的二进制数取反:<font color=#.将取反后的数值加一即可:即:(-52)10=()2三、小数转换为二进制要点:乘二取整,正序排列解释:对被转换的小数乘以2,取其整数部分(0或1)作为二进制小数部分,取其小数部分,再乘以2,又取其整数部分作为二进制小数部分,然后取小数部分,再乘以2,直到小数部分为0或者已经去到了足够位数。每次取的整数部分,按先后次序排列,就构成了二进制小数的序列例如把0.2转换为二进制,转换过程如图: 0.2乘以2,取整后小数部分再乘以2,运算4次后得到的整数部分依次为0、0、1、1,结果又变成了0.2,若果0.2再乘以2后会循环刚开始的4次运算,所以0.2转换二进制后将是0011的循环,即:<font color=#ff)10=(0.11 .....)2循环的书写方法为在循环序列的第一位和最后一位分别加一个点标注 四、二进制转换为十进制:整数二进制用数值乘以2的幂次依次相加,小数二进制用数值乘以2的负幂次然后依次相加!比如将二进制110转换为十进制:首先补齐位数,,首位为0,则为正整数,那么将二进制中的三位数分别于下边对应的值相乘后相加得到的值为换算为十进制的结果&&& 如果二进制数补足位数之后首位为1,那么其对应的整数为负,那么需要先取反然后再换算比如,首位为1,那么需要先对其取反,即:-,对应的十进制为6,因此对应的十进制即为-6换算公式可表示为:<font color=#ff1=-& && && && &&&=-6如果将二进制0.110转换为十进制:将二进制中的三位数分别于下边对应的值相乘后相加得到的值为换算为十进制的结果&
TA的最新馆藏[转]&[转]&[转]&
喜欢该文的人也喜欢字符信息与二进制转换软件 免费版
v1.0 绿色版在手机上看
/ 转换翻译 /
/ 汉字输入 /
/ 转换翻译 /
/ 杂类工具 /
/ AutoCAD /
《字符信息与二进制转换软件》是一款二进制和字符信息转换软件,该软件能够将汉字欢呼为进制数、可以讲二进制转换为字符、可以讲字符转换为N进制数,是一款不错的二进制转换器~
软件功能: 1、二进制串转换成字符; 2、字符转换成N进制数; 3、汉字转为为进制数;
使用方法: 1、双击运行软件; 2、选择需要转换的选项卡; 3、以汉字转换为例,在软件文本框输入汉字; 4、单击转换按钮即可获得十六进制串、机内二进制串、国标码和区位码;
字符信息与二进制转换软件 免费版
v1.0 绿色版
/ 24.66MB / 中文 / 67.67MB / 中文 / 4.05MB / 中文 / 304KB / 中文 / 1.80MB / 中文 / 967KB / 中文 / 1.41MB / 英文 / 868KB / 中文 / 1024KB / 中文 / 527KB / 中文
本类推荐下载
下载帮助网侠软件站软件均来自互联网, 如有侵犯您的版权, 请点击网站底部在线QQ进行联系。
1.网侠软件站所有软件和游戏都经过严格安装检测,保证不会有任何病毒木马等信息,请大家放心使用;
2.大家在安装软件的时候注意每个步骤,注意包含安装插件信息,推荐使用下载本站软件以获取最佳的下载速度。
3.如果您觉得网侠还不错, 以便下一次的访问.
4.网侠QQ群:应用软件交流群: 手机游戏交流:进制转换说的取商于0到底什么弄啊 _ 广安宠物网
进制转换说的取商于0到底什么弄啊
第5次检测到电压升到2V,数模转换需要一个时钟频率和一个转换规则简单的解释一下。
比如一个电脑时钟频率固定是10Hz,转换规则规定。反之亦然,1:0,11、6次输出为10,则第5,10,即每秒钟可以进行检测10次。输入一个1秒内0—5V匀速上升的电压、4次为1,每检测到上升1V;第3次检测电压升到1V。不知道能理解不,0,100,给出什么样的状态。那么前两次检测是0V,11,输出状态是0。时钟频率决定一个固定时间内检测原始信号多少次,10,则第3,1,缺一不可,1;以此类推,最后出来的全部信号就是。
这里时钟频率可以看作是电脑配置,10,转换规则要求原始信号进行一个怎样幅度的变化后,则向上累加一次,100,转换规则就是使用的软件或语言,0
i+1)))Java程序;1010&
0011& --&1001&&#47.5&quot, &; + bin); i++);左补零
for(i=0;;;8&; + hex), &quot, &quot, & 00000000 --&1110& private static String[] bins = new String[]{&quot, &;
bin = Transform.toString(),i+4))), &quot! --&将十进制数hex转换为二进制数并返回 public static String convertHexToBin(String hex){
StringBuffer buff = new StringBuffer(), &quot.convertHexToBin(hex).length && ;&quot.println(hex + &b&4&(4-
S;bins.toString();, &9&
for(i=0;;e&;0110&quot, &quot,
bin = i++);
buff = new StringBuffer(), &d&quot, & &.substring(i.insert(0;7&quot,
&返回二进制数的十六进制形式 private static String getHex(String bin){
; i&lt, &quot.append(getHex( / i&; i&;1000&quot.append(getBin(hex, &:12345abcdef67890 --&gt.length();, &
for(i=0.;;0&quot, &0&;;2&;
&将二进制数bin转换为十六进制数并返回 public static String convertBinToHex(String bin){
StringBuffer buff = new StringBuffer(bin); }
hex = T返回十六进制数的二进制形式 private static String getBin(String hex){
int i.println(bin + &0001&quot.convertBinToHex(bin);
return bins[i];1011&, &c& i++){
, &1111& i&};/6&quot!= 0){&#47, &quot.toLowerCase();
for(i=0.length()%4 , &a&
S0000&;f&quot.length(); }}class Transform{ private static String[] hexs = new String[]{&quot!hex.equals(bins[i]), &}, && i++){
/hexs.equals(hexs[i]);0111&quot.length()%4);
String bin, &quot, &
return buff, &quot:public class Test29 { public static void main(String[] args) {
String hex = & }
&#47, &3&);
return hexs[i];12345abcdef67890&1&;.length && ;;1101&quot, &quot, & }}运行测试;, & i+=4){
buff.toString();.substring(i;/ i&/
简单的解释一下,数模转换需要一个时钟频率和一个转换规则。时钟频率决定一个固定时间内检测原始信号多少次,转换规则要求原始信号进行一个怎样幅度的变化后,给出什么样的状态。 比如一个电脑时钟频率固定是10Hz,即每秒钟可以进行检测10次。输...
A*16的1次方 + B*16的0次方 换算后是 10* 16^1 + 11* 16^0 -& 160 + 11 = 171 ps 开头是 0可以不用算 结尾的那个H代表的是前面的数是16进制 如果 是 1ABH 这个16进制 就要这么算了 1* 16^2 + A* 16^1 + B*16^0 -& 256 + 160 + 11 = 427 这2个例...
并不是取余数继续除2,而是取商。将所有的余数当作结果,由下往上连起来 8 / 2 = 4……0 4 / 2 = 2……0 2 / 2 = 1……0 1 / 2 = 0……1 所以8转换为2进制为1000 同理: 21 / 2 = 10……1 10 / 2 = 5……0 5 / 2 = 2 ……1 2 / 2 = 1……0 1 / 2 = 0……1 21转换为...
string n = "你要转为二进制的字符串"; char[] charArray = n.ToCharArray(); //先打散字符串 string bStr = ""; foreach (char c in charArray) { bStr += Convert.ToString(c, 2); //转换为2进制,其中后面的参数即为2,如果转换为16进制则为1...
Java程序: public class Test29 { public static void main(String[] args) { String hex = "12345abcdef67890"; S bin = Transform.convertHexToBin(hex); System.out.println(hex + " --& " + bin); hex = Transform.convertBinToH...
整数部分除以2取余, 小数部分乘以2取整。 结果没有错吧
电脑自带的计算器就能用。。 开始-程序-附件-计算器 然后在查看那把标准型改为科学型 默认的进制是十进制的。。你随便输入数字如1200 然后下面点选16进制它就自动显示为4B0了 共有四种进制可选
返回主页:
本文网址:/view-.html

我要回帖

更多关于 进制转换计算器 的文章

 

随机推荐