sql10進制轉16進制
1. sql 將數字轉換為varchar 怎麼會變成16進制
這是科學計數法,也就是在excel 中存的是這樣,所以 轉換時估計select CONVERT(varchar(50),'5.06006e+009') 所以會出現 你說的情況
2. sql 讀出來的16進制怎麼轉10進制
等於 drzhzdq_1
給個Delphi 的轉化例子:
procere TForm1.Button1Click(Sender: TObject);
function DeleteSpace(ss: String): String;
var //刪除字元串中所有的空格
i: Integer;
begin
Result := ss;
i := 1;
while i <= Length(Result) do begin
if Result[i] = ' ' then Delete(Result, i, 1)
else Inc(i);
end;
end;
procere GetData(const ss: String; var dt: Array of Integer);
var
i,j: Integer;
sb: String;
begin
for i := Low(dt) to High(dt) do begin
j := 2 * i + 1;
sb := ss[j] + ss[j + 1];
dt[i] := StrToInt('$' + sb);
end;
end;
var
ss,sb,rt: String;
ac: Byte;
id,ct: Integer;
dt: Array of Integer;
begin
Edit2.Text := '';
ss := DeleteSpace(Edit1.Text); //去掉所有空格
ct := Length(ss);
if (ct mod 2) <> 0 then begin //首位<10
ss := '0' + ss;
Inc(ct);
end;
if ss[2] = 'x' then begin //考慮 0x878ABD7DB7CF 格式
Delete(ss, 1, 2);
Dec(ct, 2);
end;
SetLength(dt, ct div 2);
GetData(ss, dt);
rt := '';
if ct > 0 then begin
id := Low(dt);
while id <= High(dt) do begin
ac := dt[id];
if ac < 128 then begin // 單位元組字元
sb := Chr(ac);
Inc(id);
end else begin // 雙位元組字元
sb := Chr(ac) + Chr(dt[id + 1]);
Inc(id, 2);
end;
rt := rt + sb;
end;
end;
Edit2.Text := rt;
end;
3. SQLite 居然不支持0x這樣的16進制數據表示
sqlite里十六進制是 x'0000』這樣表示的,你上面select * from t where a=x'10'就行了。
不過這個語法和mssql的不一樣,所以如果要兼容兩種資料庫,是有點麻煩,我也是剛研究出來的!
4. 如何使用流程圖將16進制轉換為10進制數
傳統的流程圖通常採用矩形、菱形、圓形等幾種基本圖形,可以使用以下方式繪制將16進制轉換為10進制的流程圖:
開始:繪制一個矩形,並在內部填寫「開始」字樣。
輸入:繪制一個梯形,並在內部填寫「輸入16進制數」的字樣。
轉換:繪制一個矩形,並在內部填寫「轉換為10進制」的字樣。
計算:繪制一個圓形,並在內部填寫「計算」的字樣。
輸出:繪制一個梯形,並在內部填寫「輸出10進制數」的字樣。
結束:繪制一個矩形,並在內部填寫「結束」的字樣。
具體流程如下:
開始 --> 輸入16進制數 --> 轉換為10進制 --> 計算 --> 輸出10進制數 --> 結束
在「轉換為10進制」和「計算」之間,需要繪制一條箭頭,表示數據經過轉換後進入計算階段。
需要注意的是,在具體實現中,可以使用SQL語句或編程語言等方式實現16進制轉10進制的功能,而不是手動計算,這樣可以提高計算效率和減少錯誤率。