整型數據存儲

//代碼1
#include<stdio.h>
int main()
{char a = -1;signed char b = -1;unsigned char c = -1;printf("a = %d, b = %d, c = %d", a, b, c);return 0;
}
???? 1000 0000 0000 0001 -> -1源碼
????1111 1111 1111 1110 -> -1反碼
????1111 1111 1111 1111 -> -1補碼
????對于a,按位提升,看的是當前比特位的類型,所以按位提升將變為1111 1111 1111 1111 1111 1111 1111 1111,而輸出的時候先看類型和最高位,類型是有符號char,由于最高位是1,所以必須將此時的補碼1111 1111轉換為源碼,在進行讀取,此時對應的源碼是1000 0001,對應的二進制數字是-1,對于b,輸出的和a是一樣的,這里不在多說。而對于c來說,它對應的當前變量的類型是無符號char類型,而讀的時候是以%d的形式輸出,所以將1111 1111轉換為二進制,對應的數字是255,所以輸出的結果如圖所示。這里寫圖片描述
//代碼2
#include<stdio.h>
int main()
{char a = -128;printf("%u\n", a);return 0;
}
????-128對應的二進制比特為是1000 0000,當以%u的形式輸出的時候,先進行比特位按位提升,1111 1111 1111 1111 1111 1111 1000 0000,按照%u輸出就會成為一個特別大的數字
//代碼3
#include<stdio.h>
int main()
{char a = 128;printf("%u\n", a);return 0;
}
????128對應的二進制比特位是1000 0000,它的類型是有符號char類型,輸出以%u輸出,此時先進行比特位提升1111 1111 1111 1111 1111 1111 1000 0000,而輸出是以%u輸出,此時應該是一個非常大的數

這里寫圖片描述

//代碼4
#include<stdio.h>
int main()
{int i = -20;unsigned int j = 10;printf("%d\n", i + j);return 0;
}
????i對應的二進制補碼是1111 1111 1111 1111 1111 1111 1110 1100 ,10是無符號整型,對應的二進制是0000 0000 0000 0000 0000 0000 0000 1010,將i和j相加得到1111 1111 1111 1111 1111 1111 1111 0110,輸出是以%d的形式輸出,則將二進制對應的補碼轉換為原碼是1000 0000 0000 0000 0000 0000 0000 1010,將其輸出對應的十進制數是-10

這里寫圖片描述

//代碼5
#include<stdio.h>
int main()
{unsigned i;for (i = 9; i >= 0; i--){printf("%u\n", i);}return 0;
}
???? 這里的i是一個無符號int型數據,所以在它的眼里所有的數據都是大于零的,所以程序自然會進入死循環中
//代碼6
#include<stdio.h>
#include<string.h>
int main()
{char a[1000];int i;for (i = 0; i < 1000; i++){a[i] = -1 - i;}printf("%d", strlen(a));return 0;
}
????a[i]先是由-1到-128;當i變成128時此時-1-128賦值給a[i],而a[i]是一個有符號char類型,此時-1和-128相加,在a[i]的眼里將變成127, 繼續加則是126,直到0,則對應的字符有128 + 128 = 256,但是字符串是以’\0’結尾,此時的0將不算入其中,則總共有255個字符

這里寫圖片描述

//代碼7
#include<stdio.h>
int main()
{short num = 32767;short int a = num + 1;printf("%d", a);return 0;
}

這里寫圖片描述

????32767對應的二進制原碼是0111 1111 1111 1111,當給其加1時變成 1000 0000 0000 0000,然后以%d輸出,先進行符號擴展,a是有符號短整型,符號擴展為1111 1111 1111 1111 1000 0000 0000 0000,而符號位是1,轉換為原碼是1000 0000 0000 0000 1000 0000 0000 0000,所以輸出是-32769
//代碼8
#include<stdio.h>
unsigned char i = 0;
int main()
{for (i = 0; i <= 255; i++){printf("hello, world\n");}return 0;
}
????i的類型是無符號char,范圍是0到255,所以死循環

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

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

相關文章

聊聊gcc參數中的-I, -L和-l

http://blog.csdn.net/stpeace/article/details/49408665 在本文中&#xff0c; 我們來聊聊gcc中三個常見的參數&#xff0c; 也即-I, -L和-l 一. 先說 -I (注意是大寫的i) 我們先來看簡單的程序&#xff1a; main.c: [cpp] view plaincopy #include <stdio.h> #incl…

Pots——BFS

【題目描述】 You are given two pots, having the volume of A and B liters respectively. The following operations can be performed: FILL(i) fill the pot i (1 ≤ i ≤ 2) from the tap; DROP(i) empty the pot i to the drain; POUR(i,j) pour from pot i to pot j;…

HDU - 4578Transformation——線段樹+區間加法修改+區間乘法修改+區間置數+區間和查詢+區間平方和查詢+區間立方和查詢

【題目描述】 HDU - 4578Transformation Problem Description Yuanfang is puzzled with the question below: There are n integers, a1, a2, …, an. The initial values of them are 0. There are four kinds of operations. Operation 1: Add c to each number between ax …

[C++基礎]034_C++模板編程里的主版本模板類、全特化、偏特化(C++ Type Traits)

http://www.cnblogs.com/alephsoul-alephsoul/archive/2012/10/18/2728753.html 1. 主版本模板類 首先我們來看一段初學者都能看懂&#xff0c;應用了模板的程序&#xff1a; 1 #include <iostream>2 using namespace std;3 4 template<class T1, class T2>5 clas…

自定義類型: 結構體,枚舉,聯合

1.結構體 個人認為結構體和數組特別相似&#xff0c;只不過結構體和數組的區別在于結構體的成員可以是不同類型&#xff0c;而數組成員類型是相同的。 &#xff08;1&#xff09;結構體的聲明 struct tag {成員列表//至少得有一個成員 }值列表;//值列表可以省略 struct {int a…

詳解C++中的函數調用和下標以及成員訪問運算符的重載

http://www.jb51.net/article/78436.htm 這篇文章主要介紹了詳解C中的函數調用和下標以及成員訪問運算符,講到了這些二元運算符使用的語法及重載,需要的朋友可以參考下函數調用 使用括號調用的函數調用運算符是二元運算符。 語法 ?1primary-expression ( expression-list )備…

A計劃——BFS

【題目描述】 可憐的公主在一次次被魔王擄走一次次被騎士們救回來之后&#xff0c;而今&#xff0c;不幸的她再一次面臨生命的考驗。魔王已經發出消息說將在T時刻吃掉公主&#xff0c;因為他聽信謠言說吃公主的肉也能長生不老。年邁的國王正是心急如焚&#xff0c;告招天下勇士…

使用openssl的md5庫

http://blog.csdn.net/sinat_35297665/article/details/78244523 在linux機器上&#xff0c;有一個命令可以計算出文件的md5值&#xff0c;那就是md5sum&#xff0c;如果沒有的話&#xff0c;就需要安裝RPM包&#xff1a;coreutils。 現在我們使用openssl的庫也可以方便的計算出…

主席樹入門

今天學習了一下主席樹&#xff08;名字這么強的嘛&#xff09; 雖然直接理解起來不容易&#xff0c;但是這種解決問題的思想其實并不陌生。 我們可以首先來看維護整個區間第K大的線段樹 我們將[l,r]區間內數字的多少用線段樹進行維護&#xff0c;這樣的話為了求取區間第k大&…

Socket網絡編程--小小網盤程序(1)

http://www.cnblogs.com/wunaozai/p/3886588.html 這個系列是準備講基于Linux Socket進行文件傳輸。簡單的文件傳輸就是客戶端可以上傳文件&#xff0c;可以從服務器端下載文件。就這么兩個功能如果再加上身份驗證&#xff0c;就成了FTP服務器了&#xff0c;如果對用戶的操作再…

使用 Verdaccio 構建自己的私有 npm 倉庫

前言 無論你是公司的開發者&#xff0c;還是個人開發者&#xff0c;你可能都聽說過或者使用過 npm&#xff0c;這是一個使用廣泛的 JavaScript 包管理器。但是&#xff0c;你是否遇到過以下的問題&#xff1a;你需要一個私有的包存放地方&#xff0c;或者你需要在離線環境下使…

HDU - 4348To the moon——主席樹+區間修改

HDU - 4348To the moon 【題目描述】 【題目分析】 題目中說明每次更新后時間都會加1&#xff0c;而且還會需要查詢以前的區間&#xff0c;還會需要返回以前的時間&#xff0c;所以是很裸的主席樹。區間查詢的話我們同樣需要用到lazy標記 通過這道題我發現線段樹的操作還是很靈…

進入一個目錄需要那些權限

1.文件訪問者的分類 文件的訪問者具體可分為以下幾類&#xff1a; (1)擁有者 (2)組擁有者 (3)其他用戶 這些都代表什么意思呢&#xff1f; 其中r表示只讀&#xff0c;w表示只寫&#xff0c;x表示可執行&#xff0c;第一個字母代表了文件的類型&#xff0c;其中文件類型可以分為…

Socket網絡編程--小小網盤程序(2)

http://www.cnblogs.com/wunaozai/p/3887728.html 這一節將不會介紹太多的技術的問題&#xff0c;這節主要是搭建一個小小的框架&#xff0c;為了方便接下來的繼續編寫擴展程序。本次會在上一小節的基礎上加上一個身份驗證的功能。 因為網盤程序不像聊天程序&#xff0c;網盤是…

Linux下的重要目錄

1.bin目錄 主要防止系統下的各種必備可執行文件 2./proc 目錄 這個目錄相當于Windows下的計算機系統信息查看以及進程動態查看&#xff0c;可以查看計算機信息&#xff0c;用來存放當前計算機上的進程信息 3./sys 目錄 (1)其中block目錄用于存放塊設備文件 (2)bus存放總線類型…

HDU - 6278 Just $h$-index主席樹+二分

HDU - 6278 Just hhh-index 【題目描述】 【題目分析】 題目要求在區間[l,r][l,r][l,r]內大于h的數不少于h個&#xff0c;對于這種最大化問題&#xff0c;我們應該想到二分。 最小情況顯然是1.最大情況顯然是r?l1r-l1r?l1&#xff0c;對于一個hhh&#xff0c;我們如何判斷能…

Socket網絡編程--小小網盤程序(3)

http://www.cnblogs.com/wunaozai/p/3891062.html 接上一小節&#xff0c;這次增加另外的兩張表&#xff0c;用于記錄用戶是保存那些文件。增加傳上來的文件的文件指紋&#xff0c;使用MD5表示。 兩張表如下定義: 1 create table files(2 fid int,3 filename varchar(64),4 md…

LInux下du, df, top, free, pstack, su, sudo, adduser, password命令

1.du命令&#xff1a;du [選項] 文件 (1)功能該命令是顯示指定文件以及下的所有文件占用系統數據塊的情況&#xff0c;如果沒有文件&#xff0c;默認為是當前工作目錄 -a ???顯示所有文件對系統數據塊的使用情況 -b ???顯示數據塊大小時以字節為基本單位 -c ???除了顯…

HDU - 5919 Sequence II——主席樹+區間種類++逆序建樹

【題目描述】 HDU - 5919 Sequence II 【題目分析】 題目給定一個數組&#xff0c;每次查詢一個區間&#xff0c;找出區間內不同數字的個數x&#xff0c;然后輸出按出現順序第x/2向上取整個數字的位置。 按照要求&#xff0c;我們首先需要能夠找出給定區間不同的數字個數。 首…

Socket網絡編程--小小網盤程序(4)

http://www.cnblogs.com/wunaozai/p/3892729.html 在這一小節中實現了文件的下載&#xff0c;具體的思路是根據用戶的uid和用戶提供的文件名filename聯合兩張表&#xff0c;取得md5唯一標識符&#xff0c;然后操作這個標識符對應的文件發送給客戶端。 實現下載的小小網盤程序 …