将int型转为指定长度的二进制

转载 2007年09月13日 14:41:00

 

SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

CREATE FUNCTION Dec2Bin(@Dec INT@StrLen TINYINT)
RETURNS VARCHAR(31-- INT型,4字节,正数转为二进制字符串最多31位
AS
BEGIN
    
DECLARE @BinStr AS VARCHAR(31)      -- 二进制表示的字符串
    DECLARE @Div2 AS INT                -- 商
    DECLARE @Mod2 AS INT                -- 模/余数
    IF @Dec < 0
        
RETURN 'NULL'              -- 不支持负数的转换
    SET @Div2 = @Dec / 2  
    
SET @Mod2 = @Dec % 2  
    
SET @BinStr = ''
    
WHILE @Div2 <> 0
    
BEGIN
        
SET @BinStr = CAST(@Mod2 AS CHAR(1)) + @BinStr
        
SET @Dec = @Dec / 2
        
SET @Div2 = @Dec / 2
        
SET @Mod2 = @Dec % 2
    
END
    
    
SET @BinStr = CAST(@Mod2 AS CHAR(1)) + @BinStr -- 至此,已完成十进制到二进制的转换
    IF @StrLen > LEN(@BinStr)    -- 如果用户指定的长度大于实际长度,则需要左边补0
        BEGIN
            
IF @StrLen > 31    -- 返回的长度,最长为32
                SET @StrLen = 31
    
            
DECLARE @ZeroStr VARCHAR(31)    -- 需要补充的"0000..."
            DECLARE @OffsetLen TINYINT       -- 需要补充几个"0"
            SET @ZeroStr = ''
            
SET @OffsetLen = @StrLen - LEN(@BinStr)
    
            
WHILE  @OffsetLen > 0
            
BEGIN
                
SET @ZeroStr = @ZeroStr + '0' 
                
SET @OffsetLen = @OffsetLen - 1
            
END
    
            
SET @BinStr = @ZeroStr + @BinStr
        
END
    
RETURN @BinStr
END


GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

java -- 将int 转为二进制,再提取二进制中每一位信息

前言 用二进制形式,表示事务的处理状态,是一个比较简单的做法,充分考虑了二进制的开关的性质。取二进制某一位: 0 代表未处理,1代表已经进行了处理。那么 7 转成二进制 111,那么其可以表示事物...
  • TheSnowBoy_2
  • TheSnowBoy_2
  • 2016年07月08日 16:58
  • 7900

C语言二进制和float、int类型转换

最近工作需要用到float型的数据和二进制之间的转换,网上提到了一些方法,比较多的就是先分析float型数据在内存中的存放方式,然后根据IEEE标准进行转换。 个人觉得还是有点麻烦,看到其中有一种方...
  • dubuzherui
  • dubuzherui
  • 2015年03月13日 16:03
  • 2124

把用SQL语句int型整数转换成二进制数

如何把用SQL语句int型整数转换成二进制数 用函数 ------------------------ Create FUNCTION DecToBin(@Dec Int) RETUR...
  • fxhflower
  • fxhflower
  • 2012年08月28日 10:50
  • 1893

int short型类型转换

变量值的存储 变量被定义以后,系统在运行时会为该变量分配一个相应大小的存储空间,称为存储单元。 给变量赋值后,该变量对应的存储单元中会存放该值,这个值称为变量的值。 那么变量的值在变量的存储单元...
  • jingzhesiye
  • jingzhesiye
  • 2011年10月19日 15:50
  • 9400

int转换为二进制

(char)(((num>> i)&1)+'0'); 这里实现把num需要转换的向右移动 i位,目的是获得这个第i个二进制的数值(0或者1), 因为1的二进制的特殊性!! 可以获得第i位的二进制...
  • zhouxinhong
  • zhouxinhong
  • 2012年05月30日 19:51
  • 6162

如何获取int型数组的长度

直接获取int型数组的长度有的时候可能会出问题,所以可以借助指针来得到它的长度。 #include using namespace std; int main(void) { int n; c...
  • M_Eve
  • M_Eve
  • 2017年06月08日 10:14
  • 754

java string强转为int型问题

String bString="0550"; System.out.println(Integer.parseInt(bString)); 出来的结果却是550
  • zj420964597
  • zj420964597
  • 2017年09月01日 15:18
  • 114

Java 将byte[] 与int类型互相转换

在使用TCP socket进行编写文件传输协议的时候,找Java中,可以使用BufferedOutputStream 和 BufferedInputStream来缓冲输出和输入的数据,但是,这里有个问...
  • shengno1
  • shengno1
  • 2014年04月30日 21:44
  • 1604

C++ int转string string转int int转二进制

#include #include #include using namespace std; int main() { string str="12345678"; int numb...
  • qq_29108585
  • qq_29108585
  • 2017年03月05日 21:27
  • 770

将int型转换成二进制

//使用容器转换二进制 int BinaryVector(int n) { int temp= n; vectorivec; while (temp != 0) { ...
  • hefenglian
  • hefenglian
  • 2017年10月08日 11:41
  • 65
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:将int型转为指定长度的二进制
举报原因:
原因补充:

(最多只允许输入30个字)