当前位置:编程学习 > C#/ASP.NET >>

在数据库中select 2|1|8结果是11,那我知道结果是11怎么算出1,2,8这3个数字,要在数据库中实现

在数据库中select 2|1|8结果是11,那我知道结果是11怎么算出1,2,8这3个数字,要在数据库中实现 --------------------编程问答-------------------- 你不能……
|或操作相当于+。

1+2+8=11,那么
11=1+2+8=3+8+2+2+7=。。。。。有n种可能,在没有其他条件约束的情况下不可能反推到1+2+8 --------------------编程问答-------------------- 不能吧

你想啊,可能性很多啊,可能是128,也可能是245 呢? --------------------编程问答-------------------- 转换为二进制,也就是把一个数表为 1、2、4、8、16、32、64、128、256、... 中的某些数之和。 --------------------编程问答-------------------- 取数据的时候将主键的信息和11相对应,仅仅从11返回2|1|8不可能 --------------------编程问答-------------------- 那这么问 在数据库中 2进制转10进制的函数是哪个?和10进制转2进制的函数是哪个? --------------------编程问答-------------------- 这么问 这么把2进制1011拆成1000,0010,0001,这个是唯一的吧,转成10进制就是这么把11拆成8,2,1这个说法 --------------------编程问答-------------------- 这些算法要在数据库里完成 --------------------编程问答-------------------- 怎么会呢?比如3|6
3的二进制  0011
6的二进制  0110
         进行或运算后
           0111 结果为7
而3+6=9啊    --------------------编程问答-------------------- 那那2个函数 谁知道 告诉我下。。。 --------------------编程问答-------------------- 大家都没看明白楼主的意思,
楼主是想做类似位标志的东东
10进制的11表示的是1011这个2进制

用数据库实现,我觉得要用存储过程了
思路无非就是:
11/2 = 5 余数1
5/2 = 2 余数1
2/2 = 1 余数0
1/2 = 0 余数1

得出二进制后,每个1代表前面除过的2的乘积
即1011
第一个1 为3个2的乘积=8
第二个为0
第三个1为1个2的乘积=2
第四个1就是=1

从而得出11是8+2+1
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,