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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 整数变负数_一文帮你读懂Java整数的存储原理

發布時間:2025/3/12 java 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 整数变负数_一文帮你读懂Java整数的存储原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

大家應該都知道,整數包括負數,零,和正數。在Java中,基本類型中byte(8位)、short(16位)、int(32位)、long(64位)屬于整數,并且沒有無符號數,均是有符號的。對于計算機來說,它只認識二進制,也就是0和1,那我們開發過程中所使用的整數(大多是10進制)在計算機中是怎么存儲成二進制的呢?本文將詳細解讀Java整數在計算機中的存儲原理。

整數的編碼方式

整數的編碼分為原碼、反碼和補碼。計算機使用的是補碼的存儲方式。它們的定義如下:

原碼:在數值前面增加了一位符號位(即最高位為符號位),該位為0表示正數,該位為1表示負數,其余位表示數值的大小。

反碼:正數的反碼與其原碼相同。負數的反碼是對其原碼逐位取反,但符號位除外。

補碼:正數的補碼與其原碼相同,負數的補碼就是對該負數的反碼加1。

因為計算機是以補碼來存儲整數的,所以補碼就顯得很重要。那么如何計算整數的補碼呢?下面以具體例子來說明。

100 -> 原碼/反碼/補碼:01100100

0 -> 原碼/反碼/補碼:00000000

-100 -> 原碼:11100100 -> 絕對值:01100100 -> 取反加1:10011011+1 -> 補碼:10011100

1 -> 原原碼/反碼/補碼:00000001

-1 -> 原碼:10000001 -> 絕對值:00000001 -> 取反加1:11111110+1 -> 補碼:11111111

127 -> 原碼/反碼/補碼:01111111

-128 -> 絕對值:10000000 -> 取反加1:01111111+1 -> 補碼:10000000

從定義可以看出,正數的補碼,反碼,原碼相同。0的補碼就是本身。

那么負數的原碼和補碼如何轉換呢?

  • 已知一個負數求補碼方法:絕對值原碼按位求反加1。
  • 已知負數補碼求負數方法:符號位不變,其他位按位求反加1。

有了原碼,為什么還要用補碼來存儲整數

下面我們以基本類型byte為例來說明這個問題,

因為byte是8bit,從理論上講,如果利用充分的話,那么它應該可以表示2^8=256個數值。

如果采用原碼來存儲

1 - 1 = 1 + ( -1 ) =(00000001) + (10000001) = (10000010) = -2 這顯然是不正確的。

原碼在兩個整數的加法運算中是沒有問題的,問題出現在帶符號位的負數身上。原碼無法滿足運算要求。

如果采用反碼來存儲

反碼的取值空間和原碼相同且一一對應。所以反碼的表示范圍位:-127到-0到+0到+127,共255個數值,這里我們把+0和-0都當成0對待。

下面是反碼的減法運算:

1 - 1 = 1 + ( -1 )= (00000001) + (11111110) = (11111111) = ( -0 ) 沒問題。1 – 2 = 1 + ( -2 ) = (00000001) + (11111101) = (11111110) = ( -1 ) 正確。

反碼的問題出現在(+0 : 00000000)和(-0 : 11111111)上,因為在人們的計算概念中零是沒有正負之分的。

如果采用補碼來存儲

1 - 1 = 1 + (-1) = (00000001) + (11111111) = (00000000) = 0 正確。 1 – 2 = 1 + (-2) = (00000001) + (11111110) = (11111111) = ( -1 ) 正確。

00000000 表示0,10000000(0的反碼:01111111加上1) 表示 -128

通過補碼的運算,可以看出補碼的設計目的是:

  • 使符號位能與有效值部分一起參加運算,從而簡化運算規則。
  • 使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計。
  • 此外,在補碼中用-128(10000000)代替了-0,所以沒有+0和-0之分,符合常理,所以補碼的表示范圍為: -128到127共256個。
  • 補碼剛好是充分利用了byte的8bit空間。

結語

本文詳細解讀了Java整數(包括正數和負數)在計算機中的存儲原理,并且以byte基本數據類型為例闡述了采用補碼的形式存儲數值的好處,希望大家看完本篇后能夠弄清楚整數在計算機中的存儲原理。

總結

以上是生活随笔為你收集整理的java 整数变负数_一文帮你读懂Java整数的存储原理的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日韩精品在线一区二区 | 久热网站| 无码人妻丰满熟妇奶水区码 | 中国少妇乱子伦视频播放 | 激情五月激情综合 | 国产精品嫩 | 男女激情四射网站 | 中国美女洗澡免费看网站 | 女女h百合无遮羞羞漫画软件 | 91福利在线导航 | 亚洲欧美福利 | 欧美,日韩,国产在线 | 色香蕉影院 | 日韩久久久久 | 91激情影院 | 精品国产va久久久久久久 | 国产婷婷一区二区三区 | 黄色av网站免费在线观看 | 女的高潮流时喷水图片大全 | 精品成人网 | 国产福利片一区二区 | 国产毛片一区二区三区va在线 | 色综合影视 | 黑人巨大精品 | av在线官网 | 美女131爽爽爽做爰视频 | 中出一区| 亚洲一区小说 | 国产精品欧美一区二区三区 | 亚洲天堂中文字幕在线观看 | 人人妻人人澡人人爽人人精品 | 一区二区三区四区免费 | 日本精品久久久久中文字幕 | 亚洲精品在线观看网站 | 亚洲国产精品成人无久久精品 | 日本在线一本 | 扒开jk护士狂揉免费 | 亚洲高潮| 欧美精品一区二区三区四区 | 无码人妻精品一区二区三区99日韩 | av在线成人 | 日日综合网 | 大奶子情人 | 大地资源影视在线播放观看高清视频 | 久久精品二区 | 国产精品国产三级国产普通话蜜臀 | 72种无遮挡啪啪的姿势 | 日本黄色一级网站 | 成人久久久精品乱码一区二区三区 | 精品国产自在精品国产精小说 | 男人日女人的网站 | 中文字幕十一区 | 91国产网站 | 日本伦理在线 | 国产美女网站视频 | 女同性做受全过程动图 | 校园春色亚洲激情 | 亚洲图区欧美 | 女同hd系列中文字幕 | 成人人人人人欧美片做爰 | 成人免费网站在线 | 精品久久电影 | 欧美视频黄色 | 99精品久久久久久久 | 免费网站污 | 91精品又粗又猛又爽 | 激情片网站 | 国产精品一区二区三区四区五区 | 六月婷婷在线观看 | 香港三日本三级少妇66 | 久久两性视频 | 亚洲国产精品视频一区二区 | 黄色片一级 | 亚洲av无码国产精品久久 | 看av在线| 成人h动漫精品一区二区下载 | 日韩综合在线观看 | 神马影院一区二区三区 | 美国一级大黄一片免费中文 | 色爽| 色88久久久久高潮综合影院 | www.插插插| 精品一区在线视频 | 黄色美女毛片 | 亚洲天堂少妇 | 欧美 日韩 国产 在线 | 精品网站999www | 激情网站在线观看 | av资源部| 国产精品久久婷婷六月丁香 | 特大黑人巨交吊性xx | 奇米在线777 | 涩涩99| 日本老肥婆bbbwbbbwzr | 国产午夜视频在线播放 | 国产aⅴ片 | 亚洲无吗一区二区三区 | 日本55丰满熟妇厨房伦 | 日韩精品一区二区三区在线 |