一般高级语言编程很少用得到位操作,像这种功能一般只是应用到单片机的程序开发当中,因为高级语言只提供最小单位Byte(字节)操作,但如果想做一些以位作记录的数据就得要用到位操作了,以下写的几个对位操作的函数:
//定义位
type TBitCount = (Bit_8 =8,Bit_16=16,Bit_32=32);
//getbit方法可以输入一个数,查询指定位是1还是0.
function getbit(number:Integer; //要查询位的数
nBit:Byte; //要查数的第几位
BitCount:TBitCount //是输入的数的位数,8,16,32
):byte; //函数返回的是要查的数的第几位的值
//SetBit设置一个数的第几位的值为1或0.
function SetBit(Number:integer; //要设置位的数
nBit:byte; //数的第几位
BitCount:TBitCount; //数的位数,8,16,32
value:byte //要置1或0,Value只能输入1或0.
):Integer; //返回修改位后的数
//取得一个数中从第几个位开始取多少个位的值
function getbits(Number:integer;//要取位的数
nBit, //从第几位开始取位
iBit:byte; //取多少位
BitCount:TBitCount //数的位数,8,16,32
):integer; //返回取位后的数
//这个函数可以把一个数转换为二进制值的字符串
function int2bin(Number:Integer; //要转换的数
BitCount:TBitCoun