實現整數二進位制指定位置為0或1
1,需求:
使用PL/SQL實現整數二進位制指定位置為0或1,用函式表示:
r = f(src,pos,0_or_1)
r:設定結果
f:實現設定的函式
src:原值
pos:指定位置,取值power(2,x);如1表示二進位制倒數第1位,4表示二進位制倒數第3位,8表示二進位制倒數第4位
o_or_1:設定為0或1,取值0、1
2,實現:
create or replace function setbit01(src in int,pos in int,setbit0_1 in int) return int
as
begin
-- src:需要設定的原始值
-- pos:需要設定的位,應為power(2,x),1,2,4,8
-- setbit0_1:pos對應位置置為0還是1
if setbit0_1 = 0 then
if bitand(src,pos)= 0 then
return src;
else
return src - pos;
end if;
elsif setbit0_1 = 1 then
if bitand(src,pos)= 0 then
return src + pos;
else
return src;
end if;
else
return 0;
end if;
end;
/
3,測試
WITH v AS
(SELECT (CASE
WHEN rownum - 1 = 65 THEN
NULL
ELSE
rownum - 1
END) act_type
FROM dual
CONNECT BY LEVEL <= 66)
SELECT act_type,
setbit01(act_type, 1, 0) AS act_type_1_0,
setbit01(act_type, 1, 1) AS act_type_1_1,
setbit01(act_type, 2, 0) AS act_type_2_0,
setbit01(act_type, 2, 1) AS act_type_2_1,
setbit01(act_type, 4, 0) AS act_type_4_0,
setbit01(act_type, 4, 1) AS act_type_4_1
FROM v
ORDER BY 1;
SELECT setbit01(NULL, 1, 1) FROM dual;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18922393/viewspace-730101/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 遞迴函式實現十進位制正整數轉換為二進位制,八進位制,十六進位制遞迴函式
- 整數轉化成八進位制、十六進位制、二進位制,以及轉回
- 二進位制漏洞挖掘之整數溢位
- 求一個整數的二進位制中1的個數
- 二進位制或序列
- 用C#實現二進位制的減法(包括二進位制小數)C#
- JavaScript 二進位制數字轉換為十進位制JavaScript
- 二進位制中1的個數
- [譯]ES6新特性:八進位制和二進位制整數字面量
- 用c語言實現輸入一個十進位制數,計算其轉換為二進位制數後其中包含1的個數C語言
- 某演算法競賽題——把一個二進位制的串轉換為十進位制整數演算法
- JavaScript十進位制轉換為二進位制JavaScript
- Python中整數移位及二進位制串操作Python
- 位運算(一):二進位制中1的個數
- 求一個數的二進位制數中所含1的個數的程式碼實現
- js將數字轉換為二進位制、十六進位制或者八進位制程式碼JS
- C++輸入十進位制數,輸出對應二進位制數、十六進位制數C++
- 1290. 二進位制連結串列轉整數
- 位運算--求一個 數二進位制中1的個數
- 【劍指offer】二進位制中1的個數
- 一看就懂二進位制、八進位制、十六進位制數轉換十進位制
- 根據數字二進位制下 1 的數目排序排序
- Go語言實現十進位制轉換成二、八、十六進位制Go
- 二進位制與二進位制運算
- 二進位制數的運算原理與閘電路實現
- 異或之Kth[1] (可持久化二進位制trie樹)持久化
- 02_Python學習筆記之統計整數二進位制中1的個數Python筆記
- 3416:【例72.1】 二進位制轉化為十進位制
- 進位制詳解:二進位制、八進位制和十六進位制
- javascript十進位制數字和二進位制相互轉換JavaScript
- 沉思-騰訊 PHP 面試題請寫一個函式來檢查使用者提交的資料是否為整數(不區分資料型別,可以為二進位制、八進位制、十進位制、十六進位制數字)PHP面試題函式資料型別
- ORACLE使用函式對二進位制、十進位制、十六進位制數互相轉換Oracle函式
- JavaScript 二進位制、八進位制與十六進位制JavaScript
- 【刷演算法】二進位制中1的個數演算法
- 題目1513:二進位制中1的個數
- 【JVM】或許,這就是二進位制Class吧JVM
- 負數的二進位制數問題
- Python 十進位制轉換為二進位制 高位補零Python