日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle long类型转换成字符串_数值类型在计算机中的保存形式以及类型转换的思考和尝试...

發布時間:2023/12/19 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle long类型转换成字符串_数值类型在计算机中的保存形式以及类型转换的思考和尝试... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數值分為整型和浮點型兩大塊。不管是哪種類型,在計算機中都是按二進制形式存儲,只有0 和1 兩種符號?;緮祿愋蚥yte 、short 、int 、long 、float 、double 。常量有整型、浮點型和字符串。整型常量不加后綴符號代表int 類型,浮點型常量不加后綴符號表示double 類型。

整型的保存形式

一個32位整數存儲形式如下:

++++++++++++++++++++++++++++++++++++++++++++++++

+ 1 0 1 1 0 0 0 1 ++ 0 1 0 0 1 1 1 1 ++ 1 0 1 1 0 0 0 1 ++ 0 1 0 0 1 1 1 1 +

++++++++++++++++++++++++++++++++++++++++++++++++

在存儲有符號整型int 時,將最高位的二進制數作為符號位,0 代表整數,1 代表復數。剩余可表示數值的位數只剩下31位。有符號整型在保存形式上與人類有點普通,下面做了一個嘗試:

int

人為去計算1288457420的二進制表示形式,是01001100110011000100110011001100;而 -1288457420的二進制表示形式,猜測是11001100110011000100110011001100。但是實際的結果是:

//

有這樣三個名詞:原碼、反碼、補碼。正數原碼等于補碼,負數補碼等于原碼不帶符號位取反再加一。

補碼這個詞在我印象中一直有個誤區:“在負數參與運算時,才會進行原碼轉換補碼的轉換操作從而實現加法操作”。但是其實并不是。補碼是數值在計算機中的保存形式,在計算機中數值一直就是補碼形式,比如上面定義的負數i 。原碼這個詞,在計算機中并不存在,只是人類在計算補碼形式所創建的一個臨時的形式,計算機并不認識它。下面再做另一個測試:

int

以“我們所認為的原碼形式”的二進制常量去定義一個整型i ,輸出二進制形式和十進制形式,于是我們按原碼轉十進制的方法計算得到了二進制數 -1288457420。但是實際的結果:

11001100110011000100110011001100

可以發現保存的十進制數和我們預想的不太一樣,它直接將“我們所認為的原碼形式”理解為補碼形式。這再一次證明了,計算機中并不存在所謂的原碼,二進制形式一律是補碼形式,本例中,0b11001100110011000100110011001100也被計算機理解為補碼形式,于是我們將補碼取反加一求得原碼,即可得到實際的十進制結果 -859026228

整型間的類型轉換

按byte 、short 、int 、long 的順序,類型所表示的范圍是遞增的。從低到高允許自動轉換。

byte

不同類型的變量從高向低進行轉換必須使用強制轉換。

long

從高到低轉換會丟失精度,計算機會截斷高位的全部數據,畢竟越低的類型能表示的范圍就越小。從long向int轉換,高32位的01111111111111111111111111111111全部被舍棄,只剩低32位的11111111111111111111111111111111,最高位的1 被作為符號位。由于計算機中二進制的表示形式為補碼形式,轉換為原碼形式就是-1 。繼續往更低的類型也是一樣的道理。

整型常量向非整型變量進行類型轉換,在常量值不超過該變量能表示的范圍的情況下可以自動轉換,否則必須加強制轉換。比如int向short轉換,int向byte轉換:

short

但非整型常量就沒有這樣的待遇:

int

編譯器在進行運算時只有兩種精度可選32位和64位。小于等于32位的類型運算時都會得到32位整型的結果,然后再判斷其值是否超過該類型能表示的最大范圍,超過則可以自動轉換,不會編譯錯誤,否則必須添加強制轉換;如果使用變量運算,編譯器無法確定運算結果,必須添加強制轉換。以下以byte類型為例:

byte

小于32位精度的short類型也是一樣的道理。賦值運算符不必加上強制轉換,賦值運算符的右側在編譯時會自動添加強制轉換符號。

byte

浮點型的表示形式

后面再了解

總結

以上是生活随笔為你收集整理的oracle long类型转换成字符串_数值类型在计算机中的保存形式以及类型转换的思考和尝试...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。