社区
新手乐园
帖子详情
什么是基数啊!大家讲清楚点。
helpc
2007-05-15 12:27:53
新手。3Q~网上有些说法不一啊~大家说清楚点~
...全文
5566
16
打赏
收藏
什么是基数啊!大家讲清楚点。
新手。3Q~网上有些说法不一啊~大家说清楚点~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
x363635334
2012-03-04
打赏
举报
回复
进制吗?比如以2为底,逢2进1
huangzongyang
2012-03-04
打赏
举报
回复
基数和序数是相对的,,,
程序员小迷
2012-02-08
打赏
举报
回复
不就是每赚10个1块,进成10块,高一位么
yt_cloud
2012-02-08
打赏
举报
回复
顶,一楼
ForestDB
2012-02-08
打赏
举报
回复
上下文呢?
yousun4688
2012-02-08
打赏
举报
回复
基数就是进制转换的问题,就是两个数之间的转换,按什么为单位进行的,例如时间就是六十进制的,你转换一小时等于多少分钟啊,一分钟等于多少秒等等,就是一种基于一定数值的计数方式而已
kangkangli
2011-11-23
打赏
举报
回复
1楼讲的好
lrbdh
2011-04-15
打赏
举报
回复
一楼的回复是很猛!赞!
jindakun2011
2011-04-12
打赏
举报
回复
学到了
陈思有
2011-04-12
打赏
举报
回复
楼上那位太猛了
pathuang68
2011-04-12
打赏
举报
回复
cardinal number = radix
niguang09
2011-04-12
打赏
举报
回复
不错的回复。。。。顶。。。
jixingzhong
2007-05-15
打赏
举报
回复
首先学习几个概念:基数,权值。
逢n进一的n就是基数,基数为几就有几个数字,如二进制基数为二,则有0,1两个;八进制基数为八有0,1,2,3,4,5,6,7八个。总之从0开始,最后一位位n-1。而如十六进制等基数超过十的,从十开始为A(相当于10进制的10),B,C,D,E,F(相当于10进制的15)。
权可以这样理解,一种进制的某一个数的每位都有一个权值m,并且权值为位数减一,如个位上的数的权值为0(位数1-1=0),十位为1(位数2-1=1)。
各个进制之间的转化一般分为两类。
十进制转换为其他进制:可以概括为“除基取余”。如十进制的12化为16进制,12/16=0余12,但十六进制是用C来表示的,所以十进制的10就是 12进制的C;又如十进制30化为十六进制,30/16=1余14,第二次用商14/16=0余14,则十进制30转化为十六进制为1E(由后往前取),其他类推。十进制转化为二进制也是如此,如9/2=4余1,4/2=2余0,2/2=1余0,1/2=0余1,也就是1001了。10进制转化为其它进制,也是一样,但不常用,所以就不说了。
其它进制转化为十进制:可以概括为“按权展开”。知道了权值m,就可以转化了。 首先,每一位的位数乘以基数n的m次方,如八进制个位4,4x8^0=4(8^0等于8的0次方),百位4,4x8^2=256.最后加总。
另外一般默认十进制以d结尾,八进制为o,二进制为b,十六进制为h。
================================================
下面来练习一下:
1.420d=( )h
2.420h=( )d
3.110100100b=( )d
4.420d=( )b
================================================
答案:1、1A4;2、1056;3、420;4、110100100
================================================
2进制和16进制的转化:有些情况中,常会遇到2进制和16进制转化如果通过二进制转换为十进制,再转换为十六进制完成,有很大麻烦,下面有一种方法,提高效率。
二进制到十六进制的转换。我们可以将二进制数由右至左分为几部分,每一部分有四位(因为2的4次方为16),不足四位的补0,如10111b,可分为 0001(补了3个0)和0111两部分。然后将两部分分别化为十六进制,第一个是1,第二个是7。最后合起来,为17h。
十六进制到二进制的转换。同理,我们可将十六进制的每一位,一分为四,再合并即可。如13h,分为1和3两部分,在一分为四,0001和0011,合并去0,就是10011。
进制的转化,就讲到这里,修改的一个要点,相信阁下已经掌握了。
第三节 数据存储
位、字节:
在前面,大家知道了二进制的权为2,即它只有0和1两个数字组成,表示及运算都十分简单。因此在计算机中就把它作为数据的基本单位‘位’(bit),然后再把八个这样的位组成一个字节(byte),如
1001,0011。
好了,运用前面的进制转换知识将二进制1111,1111转换为十进制,为255,于是可知1字节的表示范围是0(0000,0000)--255 (1111,1111)。在计算机中常用来表示数据的有二字节,四字节,八字节,十字节等,他们都可依照上法求的范围。(在FPE2000中的8,16, 32就是指一,二,四字节)。
另外,浮点数(即带小数点的小数)一般用四字节以上表示,视精度而定,对于初学者,也就不多说了。
原码、反码、补码:
原码:一字节数据可表示的范围是0--255,那么负数又怎么表示呢?计算机中是这样规定的,用一个数的最高一位表示正负,0为正,1为负。例如 0111,1111转换为十进制为127,1111,1111转换为十进制为-127,由此我们知一字节的范围为-127--127,其他字节的范围类推。
反码:上面讲的都是原码表示法,可在计算机中的数据都是以补码存放的,只有这样才能减轻cpu的负担。提到补码,就不得不提反码了。计算机中是这样规定反码的,如果是正数,则按原码形式不变,如127仍为0111,1111;而如果为负数则,第一位为1,其他各位取反(即0变为1,1变为0),如原码- 127(1111,1111),表示为1000,0000。
补码:补码同上,如果是正数,则按原码形式不变,如127仍为0111,1111;如果为负数则除第一位为1外,其他各位取反加1,如-127,先取反为 1000,0000,然后加1,为1000,0001。但1000,0000比较特殊,用它来表示-128,由此我们知补码可表示的范围是-128-- 127(因为-64d为1000,000b反码为1111,1111b补码+1不能用2byte表示)。
数据存储:
现在把所有的有用的数据集中起来放在一起,并取一个名字来代表这些数据的集合,这就是一个文件了。如存盘文件就是将游戏中某一场景的关键数据集中记录到一个文件中,那么下次读取这些数据也就可以接着玩了。
而且我们知道文件中数据的存放是有序的,以字节为单位,分别给他们编号,第一个字节为0,第二个为1……一定要注意的是第一个字节是0而不是1,这在后面会多次碰到。在许多地方所指的地址就是这些编号了。如一个二字节的数据,其第一个字节的地址为3,则整个数据的地址就为3。
另外注意的一点是,在内存(即文件)中二,四等多字节的数据,其存放的顺序是颠倒的;十六进制AA BB,你在编辑工具中将看到BB AA。
jixingzhong
2007-05-15
打赏
举报
回复
另外,在数据表示中,
比如一个 10进制数据 123456789, 它的基数就是 10(逢n进一的n就是基数)
jixingzhong
2007-05-15
打赏
举报
回复
基数
cardinal number
集合论中刻画任意集合所含元素数量多少的一个概念。又称势。两个能够建立元素间一一对应的集合称为互相对等集合。例如3个人的集合和3匹马的集合可以建立一 一对应,是两个对等的集合。根据对等这种关系对集合进行分类,凡是互相对等的集合就划入同一类。这样,每一个集合都被划入了某一类。任意一个集合A所属的类就称为集合A的基数,记作(或|A|,或cardA)。这样,当A 与B同属一个类时,A与B 就有相同的基数,即。而当 A与B不同属一个类时,它们的基数也不同。即。如果把单元素集的基数记作1,两个元素的集合的基数记作2,等等,则任一个有限集的基数就与通常意义下的自然数一致 。空集的基数也记作σ 。于是有限集的基数也就是传统概念下的“个数”。但是,对于无穷集,传统概念没有个数,而按基数概念,无穷集也有基数,例如,任一可数集与自然数集N有相同的基数,即所有可数集是等基数集。不但如此,还可以证明实数集R与可数集的基数不同,即。所以集合的基数是个数概念的推广。基数可以比较大小。假设A, B的基数分别是a,β,即=a,=β,如果A与B的某个子集对等,就称 A 的基数不大于B的基数,记作a≤β,或β≥a。如果 a≤ β,但a≠β(即A与B不对等 ),就称A的基数小于B的基数,记作a<β,或β>a。基数可以进行运算 。设=a ,=β,且 A∩B=,则规定为a 与β之和记作=a +β。设=a,=β,A×B为 A与B的积集,规定为 a 与β的积,记作=a·β。
jixingzhong
2007-05-15
打赏
举报
回复
基数, 背景是什么?
内功修炼之数据结构与算法
为什么学数据结构与算法? 算法是一个程序员真正的核心竞争力。无论用哪种语言做开发,算法从程序角度而言都是灵魂内核般的存在。 程序的躯体可以各式各样,但是内核一定要追求高效整洁。 同时掌握了算法,大厂名企...
基数
排序(桶排序)——C语言实现
文章目录一、
基数
排序二、排序思想三、动图演示四、图解五、代码实现(包含详细注释)六、问题解答七、致命缺陷(负数问题) 一、
基数
排序
基数
排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或binsort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,
基数
排序法是属于稳定性的排序,在某些时候,
基数
排序法的效率高于其它的稳定性排序法。 二、排序思想
基数
排序就是桶排序,也可以说是桶排..
0.1 + 0.2 不等于 0.3 ?这是为什么?一篇
讲清楚
!!!
例如,0.1 在二进制中的近似表示可能是 0.000110011001100...,但在计算机的浮
点
数表示中,它可能被截断或舍入为 0.00011001100110,这就导致了 0.1 + 0.2 在计算机中可能不等于 0.3,而是略微有所偏差。在二进制中,,浮
点
数通常使用 IEEE 754 标准进行表示,无法准确表示的小数有 0.1、0.2 或 0.3 这样的数字,因为它使用的是二进制浮
点
格式。在二进制(计算机使用的系统)中,如果一个分数使用
基数
(2)的质因数来表示,那么它可以被精确地表示。
浅谈
基数
排序
浅谈桶排序 浅谈计数排序 之前的文章中介绍了两种时间复杂度为O(n)的排序算法,在今天的文章中我们再来介绍第三种时间复杂度为O(n)的排序算法–
基数
排序。 首先现在思考这样一个问题,假设我们有100万个手机号码,我们需要做的是对这100万个手机号码进行排序,该从何入手呢? 如果使用快速排序,时间复杂度可以做到O(nlogn),那么能否进一步优化,把时间复杂度降到更低呢?可能有朋友会觉得之前介绍过的桶排序、计数排序可以把时间复杂度降到O(n)。但是我们来思考一下,如果使用桶排序和计数排序,对于这么大的数据量,
数字、
基数
及表示
数字、
基数
及表示 整数 整数是这些熟悉的数字 …, -1, 0, +1, +2, …。整数值也被称作是‘完整的’,并且分为正数(1到无穷大),负数(-1到负无穷大),零(0),非负数(零或正数)和少有的非正数(零或负数)。正数和非负数间的差别通常非常重要,例如C语言典型地用非负数作为数组下标,明确地包括零。
基数
我们书写整数(和其它数字)时通常使用‘
基数
10’或‘十进制’算术
新手乐园
33,311
社区成员
41,784
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章