在数据库中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