码迷,mamicode.com
首页 > 其他好文 > 详细

20120505 数据的表示

时间:2015-05-05 23:48:06      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

1、未赋值的变量0

在电子技术中,0一般表示低电平,1表示高电平。在逻辑计算中,0一般表示逻辑假(False),1为逻辑真(True),逻辑电路中通常只有两个状态,开关的接通与断开,这两种状态用0和1表示。

在vb中,未赋值的变量,编译器一般将其初始化为0.   .net framework 中如vb.net变量使用之前未初始化,则其值为空。

c和c++中未初始化的变量编译器不会将其初始化为0,而是内存中原来内存单元的值。

c#中,未赋值直接使用,将会编译通不过。

2、数值0的类型转换

0与bool型关系,0为false,非0为true

在计算阶乘的时候,我们定义阶乘后求得的值的结果是int类型,但是发现当求14!的时候,发现结果比13!还小,原因就是14!的阶乘超过了int类型的范围,那如果将int改为long类型,理论上行,实际上ANSI C中规定,在字长为32位的系统中,int类型和long类型都是32位。故这里改为long也不能解决问题。

但是在支持64位字长的c#中,long类型使用64位二进制表示(8个字节),但是当计算到21!的时候,就变成负数了,对于基本整数,可以用ulong(无符号长整形)类型来保存数据。那么更大的数据怎么办?

可以在程序中使用数组来表示数据的每一位,但是在微软的.net Framework 4 中已经提供了一个大整数类型,可以处理任意长度的大数据。

使用二进制优点还有:适合逻辑运算,二进制只有两个数码,正好与逻辑代数中的真和假相吻合。还易于转换,二进制数与八进制数,16进制数之间的转换很方便。抗干扰能力强,用二进制表示数据具有抗干扰能力。仍能可靠的分辨出高低电平(只分辨高低,不是具体电压)

十进制数转成二进制数,先得到的余数放在最后二进制的低位。(除2取余,逆序排列)

进制转换的时候,假如12想要返回大写字母,则print("%c",12-10+‘A‘);不格式化输出则12-10+‘A‘返回的是ascii码。如果是7,则输出scill码就是7+‘0‘,如果想输出字符还是用格式化。

相反,如果是一个16进制的B转成10进制,应该是B-‘A‘+10

 

20120505 数据的表示

标签:

原文地址:http://www.cnblogs.com/honeybusybee/p/4480478.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!