37.25d16进制转换为10进制2进制8进制16进制

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
16进制与2进制10进制对照表(0x20-0xff)
下载积分:30
内容提示:16进制与2进制10进制对照表(0x20-0xff)
文档格式:PDF|
浏览次数:911|
上传日期: 20:01:44|
文档星级:
该用户还上传了这些文档
16进制与2进制10进制对照表(0x20-0xff)
官方公共微信1613人阅读
《C/C++学习指南》(10)
本篇介绍C/C++语言中的进制的概念,主要介绍2进制、10进制、16进制,这三种是编程时必须掌握的也是最常用的。另外,介绍8进制和36进制,其中&36进制在实际工程项目中会遇到。 (本文选自《C/C++学习指南》,邵发,附录“2进制,10进制,16进制”)
&权利声明:作者拥有本书的全部权利。作者授权任何人都可以自由转载本网站发布的内容,但转载时必须遵守以下限制:
①转载时必须全文转载,不得有任何修改,必须包含“权利声明”和“官网地址” ② 仅限于网络转载,即最终结果公布于网络上。凡是不遵守以上两条的转载行为视为侵权行为。除非本人允许,任何人不得将本网站内容内容用于任何的其他用途。&
官网地址:&/&
1.1&&&&&&&&&引例一
先给出一段代码,请读者现在立即编译运行一遍,观察结果。
#include &stdio.h&
void main()
int a = 'A';
int b = 65;
int c = 0x41;
printf(&%d, %d, %d \n&, a, b, c);
如果你还没有动手编译,那么请立即终止阅读本书,因为本书不是为太懒的人准备的。所有代码和示例,请读者务必自己手打一遍,不要拷贝。如果你是拷贝过去的,请立即烧掉本书,谢谢。
你会发现,输出结果为:
是的,变量a,b,c的值完全相同。实际上,这三种初始化(赋值)方法是完全等价的,只是写法不一样而已。你用哪一种办法都可以。
1.2&&&&&&&&&引例二
再给出另一段代码,请立即编译和运行一下:
#include &stdio.h&
void main()
printf(&%d,
它的运行结果为:
是的,对于同一个整数a,当它作为十进制显示时,显示为65;当作为十六进制显示为,显示为41,当作为字符显示时,显示A。
1.3&&&&&&&&&引例三
如果上面的例子给你的印象还不够深刻,再尝试一个例子:
#include &stdio.h&
void main()
// 以下变量a和b的值是相同的
int a = 0x;
printf(&%d, %d \n&, a, b);
// buf的内容为&ABC&
char buf[4] = { 0x41, 66, 'C' , 0};
printf(&%s \n&, buf);
1.4&&&&&&&&&整型变量的2进制表示
本节内容对理解本章乃至全书都极为重要,如果你理解了,那么所谓进制问题对你就不再是个问题。
首先,在第三章中已经明确的强调,每个变量都是具有一个内存地址的。对于char型变量来说,在内存中占了1个字节。对于int型变量来说,在内存中占了4个字节。为了让你更容易的理解,我们就先从char开始吧。
然后,我们看一下在计算机的内存里,倒底是怎么存储的。我们从最最简单的数开始。例如,定义一个变量&char&&a = 13,此变量a占了一个字节的内存。在内存中,一个字节有8个位(bit),每一个位可以是1或0。那么a的表示为:
就是说,在物理内存中,它就是这么存储的。至于物理上如何表示1,如何表示0,读者是不需要关心的。你可以简单地认为一个位就对应一个“开关”,1表示打开,0表示关闭。以后,我们就称它的按位表示为&&。
所以,char&&a = 13&或者char&&a = 0x0C ,这两种写法表示的意思是一样的:分配一个变量,对应一个字节,字节的按位物理表示为&。
明白了吗?所谓10进制还是16进制是对人类而言的,不是同的说法。但是对于计算机而言,要存储这个数值,就是要用8个位(对应8个物理开关)。这是哲学上的“形式和内容”的关系。
反过来,已经知道一个变量a的内存表示为&,我们想在控制台上把它的值显示出来。那么可以按10进制显示,也可以按16进制显示。
对你是小学生水平,那好吧,作为程序员我只好给按10进制显示给你了。
printf (& %d&&&,&&a);
如果你有碰巧看过本书,那好吧,我给按16进制显示:
printf(& %02X &, a);
1.5&&&&&&&&&进制换算
这一节介绍的是数学里的内容。作者的数学水平不高,在这里只能让你大概地理解一下。实际上,正如作者一再强调的,编程不需要太高的数学水平,几乎对数学是没有要求的。
首先,说说从16进制到10进制的换算。我们知道,0x41(十六进制)&和65(十进制)是等价的。那么怎么手工计算呢?下面给出示例:(以下不是代码,是在草稿纸的手算方法)
0x41&&=&&4 * 16&&+ 1&&= 65
0x = 1 * 167&+ 2 * 166&&+ 3*165&+ 4 * 164&+ 5 * 163&+ 6 * 162&+ 7 *161&+ 8 =&
可以看出,对于16进制,每一个数字上的权重就是&16n-1&&(即16的n-1次方)
然后,说说从2进制到10进制的换算。
=&&&0 + 0 + 0 + 0 + 8 + 4 + 0 + 1 = 13
或者严格一点:
=&&&0 + 0 + 0 + 0 + 23&+ 22+ 0 + 1 = 13
可以看出,对于2进制,每一个数字上的权重就是2n-1(即2的n-1次方)
1.6&&&&&&&&&如何打印2进制
在printf参数中,使用控制符%d可以按10进制打印,使用%X可以按16进制打印,那么,有没有按2进制打印呢?
很遗憾,printf不能直接打印二进制。为了弥补这个遗憾,作者贡献一个按2进制打印的函数。
#include &stdio.h&
// 把一个整数转成二进制字符串
// value: 输入整数
// buf: 输出字符串
// num_of_bits: 指定要打印的位数
void to_binary(unsigned int value, char buf[], int num_of_bits)
for(int i=0; i&num_of_ i++)
unsigned int mask = 1 && (num_of_bits -1 - i);
if ( value & mask)
buf[i] = '1';
buf[i] = '0';
buf[num_of_bits] = 0;
void main()
char buf[33];
to_binary(135, buf, 8);
printf(&%s \n&, buf);
1.7&&&&&&&&&8进制
8进制在工程实际中一般不会用到,这个用法没有价值。和前面的类似,8进制表示每个数字的权重是8n-1(即8的n-1次方)。例如,15(八进制)等于13(十进制)。
在C/C++语言中,八进制的字面常量以0开头。例如下面的代码,
#include &stdio.h&
void main()
int a = 015; // 以0开头表示八进制
int b = 0x0D; // 以0x开头表示十六进制
int c = 13;
printf(&%d, %d, %d \n&, a, b, c);
1.8&&&&&&&&&36进制
正如序列&0, 1, 2, ..., 9, A, ..., F来表示16进制一样,用序列0, 1, 2, ...,9, A, B, ..., Y, Z来表示36进制。其运算方法也完全是一样的,每一个数字的权重是36n-1(36的n-1次方)。
例如,(以下不是代码,是草稿纸上的手算方法)
2Z = 36 * 2&&+ 35 = 107
事实上,36进制在工程实践中是一个很有用的知识。比如,同样用4个字符来表示数字,使用10进制可以表示,使用16进制可以表示0000~FFFF,使用36进制可以表示0000~ZZZZ。可以,使用36进制的表示能力最强。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:197898次
积分:3064
积分:3064
排名:第7342名
原创:107篇
评论:47条
难度:高级
类型:实战教学
难度:高级
类型:技术教程
难度:高级
类型:实战教学
《C/C++学习指南》,一本C/C++语法教材,与同类教材/图书相比,本书由业内人士撰写,由浅入深、循序渐近的讲解所有语法问题,并结合了工程实践进行分析。它的理念是让编程变得简单,让人一看就懂。它的目标是成为大中专院校、培训班、从业人员和爱好者的人手一本的必备教材。
(1)(1)(4)(11)(7)(2)(11)(2)(20)(10)(1)(1)(13)(9)(11)(2)(2)2、8、10、16进制转换_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
2、8、10、16进制转换
上传于||暂无简介
大小:6.99KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢怎么使用JavaScript进行进制转换
JS 是一个很神奇的语言,内制的的很多函数可以帮我们进行数(进)制转换;
JS中可以直接使用16进制;
将任意进制字符串转换为十进制,如二进制,八进制,十六进制, 第二数数不写即为最常用的转换为整型十进制;
parseInt("11",
2);&& // 3 &
2进制转10进制 &
parseInt("77", 8);&& //
63& 8进制转10进制
parseInt("af", 16);& //175&
16进制转10进制
将10进制转换为2进制,八进制,十六进制字符串
Object.toString(n) : 即可 (n) 表示进制,如
(152).toString(2)& // ""
;& 先用括号将152转换“包”成一个对象, 或者如下写法;
152..toString(2)&& //
这里第一个点将152转换成float类型的小数,第二个点是引出对象方法;
152..toString(16)& // "98" : 十进制转16进制
152..toString(32)& // "4o" :十提制转32进制
同样Javascript支持最大进制是36 (26个英文字母 + 10个数字)
35..toString(36)&& // "z" :
支持最大编码"Z", 不区分大小写
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。请问2进制数如何转换为8进制数,10进制数,16进制数
一、2进制转换成8进制,从左到右3个数为一位,不够补0.如下表 二进制 八进制 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 如二进制:1101 三个数为一位,不够补0,为 001 101B 转换成8进制 对上八进制表就是15(8) 二、二进制转十进制 从最后一位开始算,依次列为第0、1、2...位 ,第n位的数(0或1)乘以2的n次方 得到的结果相加就是答案 如1101转十进制为:1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13 三、二进制转16进制 从左到右4个为一位,不够补0 如表 二进制 十六进制 1 1 1 3 1 5 1 7 1 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F 如二进制1001101 四个为一位
十六进制为 4D
为您推荐:
其他类似问题
扫描下载二维码

我要回帖

更多关于 js 16进制转换10进制 的文章

 

随机推荐