【C語言】操作符詳解(一):進制轉換,原碼,反碼,補碼

目錄

操作符分類

2進制和進制轉換

2進制轉10進制

10進制轉2進制

2進制轉8進制和16進制

2進制轉8進制

2進制轉16進制

原碼、反碼、補碼


操作符分類

操作符中有一些操作符和二進制有關系,我們先鋪墊一下二進制的和進制轉換的知識。

2進制和進制轉換

其實我們經常能聽到2進制、8進制、10進制、16進制這樣的講法,那是什么意思呢?其實2進制、8進制、10進制、16進制是數值的不同表示形式而已。
比如:數值15的各種進制的表示形式:

15的2進制:1111

15的8進制:17

15的10進制:15

15的16進制:F

我們重點介紹一下二進制:10^0,10^1,10^2...

首先我們還是得從10進制講起,其實10進制是我們生活中經常使用的:

?10進制中滿10進1。
?10進制的數字每一位都是0~9的數字組成。

其實2進制也是一樣:

?2進制中滿2進1。

?2進制的數字每一位都是0~1的數字組成那么1101就是二進制的數字了。

2進制轉10進制

其實10進制的123表示的值是一百二十三,為什么是這個值呢?其實10進制的每一位是權重的,10進制的數字從右向左是個位、十位、百位.....,分別每一位的權重是 10^0,10^1, 10^2...?

如下圖:

10進制1101每一位權重的理解

2進制和10進制是類似的,只不過2進制的每一位的權重,從右向左是:2^0,2^1,2^2如果是2進制的1101,該怎么理解呢?

2進制1101每一位權重的理解

10進制轉2進制

10進制轉2進制

2進制轉8進制和16進制

2進制轉8進制

8進制的數字每一位是0~7的,0~7的數字,各自寫成2進制,最多有3個2進制位就足夠了,比如7的二進制是111,所以在2進制轉8進制數的時候,從2進制序列中右邊低位開始向左每3個2進制位會換算一個8進制位,剩余不夠3個2進制位的直接換算。
如:2進制的01101011,換成8進制:0153,0開頭的數字,會被當做8進制。

2進制轉16進制

16進制的數字每一位是0~9,a ~f的,0~9,a ~f的數字,各自寫成2進制,最多有4個2進制位就足夠了,比如f的二進制是1111,所以在2進制轉16進制數的時候,從2進制序列中右邊低位開始向左每4個2進制位會換算一個16進制位,剩余不夠4個二進制位的直接換算。
如:2進制的01101011,換成16進制:0x6b,16進制表示的時候前面加0x

原碼、反碼、補碼

整數的2進制表示方法有三種,即原碼反碼補碼
有符號整數的三種表示方法均有符號位數值位兩部分,2進制序列中,最高位的1位是被當做符號位,剩余的都是數值位。??????????????????????????????????????????????????????????????????????????????????????????????????????????????? 符號位都是用0表示“正”,用1表示“負”。


🔺正整數的原、反、補碼都相同
🔺負整數的三種表示方法各不相同

原碼:直接將數值按照正負數的形式翻譯成二進制得到的就是原碼。

反碼:將原碼的符號位不變,其他位依次按位取反就可以得到反碼。

補碼:反碼+1就得到補碼。
反碼得到原碼也是可以使用:取反,+1的操作。

對于整形來說:數據存放內存中其實是存放的補碼

為什么呢?

在計算機系統中,數值一律用補碼來表示和存儲。原因在于,使用補碼,可以將符號位和數值域統一處理; 同時,加法和減法也可以統一處理(CPU只有加法器)此外,補碼與原碼相互轉換,其運算過程是相同的,不需要額外的硬件電路。

?以上便是我為大家帶來的進制轉換,原碼,反碼,補碼內容,若有不足,望各位大佬在評論區指出,謝謝大家!可以留下你們點贊、收藏和關注,這是對我極大的鼓勵,我也會更加努力創作更優質的作品。再次感謝大家!?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/208851.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/208851.shtml
英文地址,請注明出處:http://en.pswp.cn/news/208851.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據結構準備知識

struct(結構體) struct,或稱為結構體,是C語言中一種復合數據類型,它允許你將多個不同類型的數據項組合成一個單一的單位。這對于創建記錄或更復雜的數據結構非常有用。 結構體的定義語法如下: struct 結…

vertica主鍵列能插入重復值的處理辦法

問題描述 開發同事反饋在vertica中創建含主鍵列的表中插入重復數據時沒有進行校驗,插入重復值成功。經過測試著實可以插入重復值,這個坑有些不一樣。 創建表和插入語句如下: --創建表 CREATE TABLE dhhtest(ID VARCHAR(64) PRIMARY KEY );…

postgresql數據庫配置主從并配置ssl加密

1、先將postgresql數據庫主從配置好 參考:postgresql主從配置 2、在主節點配置ssl加密,使用navicat測試是否可以連接 參考:postgresql配置ssl 3、正常連接無誤后,將root.crt、server.crt、server.key復制到從數據庫節點的存儲…

使用Microsoft Dynamics AX 2012 - 5. 生產控制

生產控制的主要職責是生產成品。為了完成這項任務,制造業需要消耗物品和資源能力(人員和機械)。制造過程可能包括半成品的生產和庫存。半成品是指物品包括在成品材料清單中。 制造業的業務流程 根據公司的要求,您可以選擇申請Dy…

某馬點評——day04

達人探店 發布探店筆記 改一下&#xff0c;圖片保存路徑就可以直接運行測試了。 查看探店筆記 Service public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IBlogService {Resourceprivate IUserService userService;Overridepublic Resu…

OpenCL學習筆記(二)手動編譯開發庫(win10+vs2019)

前言 有時需求比較特別&#xff0c;可能需要重新編譯opencl的sdk庫。本文檔簡單記錄下win10下&#xff0c;使用vs2019編譯的過程&#xff0c;有需要的小伙伴可以參考下 一、獲取源碼 項目地址&#xff1a;GitHub - KhronosGroup/OpenCL-SDK: OpenCL SDK 可以直接使用git命令…

一篇文章了解指針變量

字符指針變量 在指針的類型中我們知道有一種指針叫做字符指針 它的使用情況如下&#xff1a; #include<stdio.h> int main() {char pa w;char*p1&pa;*p1 a;printf("%c\n", *p1);return 0; } 在這段代碼當中&#xff0c;我們將‘w’字符的地址傳到了p…

vue3 自己寫一個月的日歷

效果圖 代碼 <template><div class"monthPage"><div class"calendar" v-loading"loading"><!-- 星期 --><div class"weekBox"><div v-for"(item, index) in dayArr" :key"index&q…

2.修改列名與列的數據類型

修改字段名與字段數據類型 1.修改字段名 有時&#xff0c;在我們建好一張表后會突然發現&#xff0c;哎呀&#xff01;字段名貌似寫錯了&#xff01;怎么辦&#xff1f;要刪了表再重新建一個新表嗎&#xff1f;還是要刪了這個字段再新建一個新的字段&#xff1f; 都不用&…

AIGC專題報告:生成式人工智能人人可用的新時代

今天分享的AIGC系列深度研究報告&#xff1a;《AIGC專題報告&#xff1a;生成式人工智能人人可用的新時代》。 &#xff08;報告出品方&#xff1a;埃森哲&#xff09; 報告共計&#xff1a;21頁 人工智能發展迎來新拐點 ChatGPT 正在喚醒全球對人工智能&#xff08;AI&…

蛇形矩陣

蛇形矩陣是由1開始的自然數依次排列成的一個矩陣上三角形。 例如&#xff0c;當輸入5時&#xff0c;應該輸出的三角形為&#xff1a; 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 輸入描述&#xff1a;輸入正整數N&#xff08;N不大于100&#xff09; 輸出描述&#xff1a;輸出一個N…

MySQL七 | 存儲引擎

目錄 存儲引擎 存儲引擎特點 存儲引擎選擇 Innodb與MyISAM區別 存儲引擎 默認存儲引擎:InnoDB show engines;#展示當前數據庫支持的存儲引擎 存儲引擎特點 特點InnoDBMyISAMMemory存儲限制64TB有有事務安全支持--鎖機制行鎖表鎖表鎖Btree鎖支持支持 支持 Hash索引--支…

在pom.xml中添加maven依賴,但是類里面import導入的時候報錯

問題&#xff1a; Error:(27, 8) java: 類TestKuDo是公共的, 應在名為 TestKuDo.java 的文件中聲明 Error:(7, 23) java: 程序包org.apache.kudu不存在 Error:(8, 23) java: 程序包org.apache.kudu不存在 Error:(9, 23) java: 程序包org.apache.kudu不存在 Error:(10, 30) jav…

【場景測試用例】上傳文件

測試思路&#xff1a; 功能 上傳符合需求給的文件格式&#xff0c;大小&#xff0c;寬高等可以正常上傳 不同的文件格式最大/最小/中間的文件大小如支持批量上傳可以正常上傳 邊界值如支持刪除可以正常刪除指定文件&#xff0c;其他文件不受影響如支持預覽&#xff0c;可以正常…

【Java探索之旅】我與Java的初相識(一):Java的特性與優點及其發展史

&#x1f3a5; 嶼小夏 &#xff1a; 個人主頁 &#x1f525;個人專欄 &#xff1a; Java入門到精通 &#x1f304; 莫道桑榆晚&#xff0c;為霞尚滿天&#xff01; 文章目錄 一. Java語言概述與優勢1.1 Java的概述1.2 Java語言的優勢 二. Java領域與發展史2.1 Java的使用領域2.…

面試多線程八股文十問十答第二期

面試多線程八股文十問十答第二期 作者&#xff1a;程序員小白條&#xff0c;個人博客 相信看了本文后&#xff0c;對你的面試是有一定幫助的&#xff01; ?點贊?收藏?不迷路&#xff01;? 1.進程和線程的區別 概念不同&#xff1a;進程是操作系統中的一個獨立執行單元&a…

LeetCode56. Merge Intervals

文章目錄 一、題目二、題解 一、題目 Given an array of intervals where intervals[i] [starti, endi], merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input. Example 1: Input: interva…

目標檢測mAP計算以及coco評價標準

這篇是我對嗶哩嗶哩up主 霹靂吧啦Wz 的視頻的文字版學習筆記 感謝他對知識的分享 講一下目標檢測中的一些常見的指標 在我們使用目標檢測網絡訓練時 最后在驗證集上會得到一個coco的評價列表 就像我們圖中給的這一系列參數列表一樣 我們再進一步引入兩個概念 第一個叫做precisi…

P1 Qt的認識及環境配置

目錄 前言 01 下載Qt Creator windows下載安裝包拷貝到Linux Linux直接下載 02 Linux 安裝Qt 前言 &#x1f3ac; 個人主頁&#xff1a;ChenPi &#x1f43b;推薦專欄1: 《C_ChenPi的博客-CSDN博客》??? &#x1f525; 推薦專欄2: 《Linux C應用編程&#xff08;概念類…

地址欄不安全提示

在使用瀏覽器時訪問網站的時候&#xff0c;我們可能會遇到地址欄提示不安全的情況。這種情況通常都是是由于未安裝有效SSL證書或者網站SSL證書過期等原因導致的。本文將介紹如何處理地址欄提示不安全的問題&#xff0c;以確保我們的上網安全。 1&#xff0c;缺少SSL證書&#x…