欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文弄懂c語(yǔ)言賦值截?cái)?/h1>
 更新時(shí)間:2025年03月13日 10:19:08   作者:hutaotaotao  
截?cái)嗍侵笇⒁粋€(gè)較寬范圍的整型賦值給一個(gè)較窄范圍的整型時(shí),超出目標(biāo)類型表示范圍的部分被丟棄,只保留目標(biāo)類型能夠表示的部分,本文主要介紹了c語(yǔ)言賦值截?cái)?具有一定的參考價(jià)值,感興趣的可以了解一下

截?cái)嗪x

在C語(yǔ)言中,將一個(gè)較寬范圍的整型(如16位的short或int16_t)賦值給一個(gè)較窄范圍的整型(如8位的char或int8_t)時(shí),如果原值超出了目標(biāo)類型的表示范圍,就會(huì)發(fā)生所謂的“截?cái)?rdquo;(truncation)。這意味著,超出的部分會(huì)被丟棄,只保留目標(biāo)類型能夠表示的部分。

注意截?cái)嘀傅氖谴鎯?chǔ)在內(nèi)存中補(bǔ)碼進(jìn)行截?cái)?。?shù)值的存儲(chǔ)都是以補(bǔ)碼存儲(chǔ)在內(nèi)存中。

截?cái)嗯e例

以無符號(hào)16位整型 賦值給 無符號(hào)整型8位為例,8位整型的范圍是0-255,16位整型的范圍是0-65536。要看到截?cái)嗟男Ч?,可以選擇一個(gè)大于255(即8位無符號(hào)整型的最大值)但小于65536(16位無符號(hào)整型的最大值)的數(shù)。比如uint16_t類型的300賦值給uint8_t類型。選擇300(二進(jìn)制表示為0000 0001 0010 1100),那么截?cái)嗪螅瑢⒅槐A舻?位0010 1100,這對(duì)應(yīng)于十進(jìn)制的44。

再比如int16_t的130賦值給int8_t類型。int8_t類型只能表示-128到127之間的整數(shù)。int16_t范圍在-32768到32767。130的二進(jìn)制補(bǔ)碼表示(在int16_t中)是0000 0000 1000 0010。但是,當(dāng)將其賦值給int8_t時(shí),只有低8位被保留,即1000 0010。

由于int8_t類型是有符號(hào)類型,首位1看作符號(hào)位,為負(fù)數(shù)。根據(jù)二進(jìn)制補(bǔ)碼的規(guī)則,要計(jì)算這個(gè)數(shù)的實(shí)際值,需要先取反(不包括最高位)然后加1,可以得到為-126。

更簡(jiǎn)單的方法就是忽略符號(hào)位(即最高位),剩下的7位是000 0010,這是2的二進(jìn)制表示。但是,由于整個(gè)數(shù)是負(fù)數(shù),在二進(jìn)制補(bǔ)碼系統(tǒng)中,這是通過從-128(1000 0000)開始加上這個(gè)正數(shù)來完成的,即-126。此外,如果相加后的值超過了127(int8_t得最大值),可由循環(huán)得到最終的值,比如相加后的值為128那么最終就是-128,因?yàn)?27的下一個(gè)值是-128。

#include <stdio.h>

int main(void)
{
    uint16_t wideVar = 300; // unsigned short
    uint8_t narrowVar = (uint8_t)wideVar; // unsigned char
    printf("%u, %u\n", wideVar, narrowVar); // 300, 44

    int16_t wideVar2 = 130;  // signed short
    int8_t narrowVar2 = (int8_t)wideVar2; // signed char
    printf("%d, %d\n", wideVar2, narrowVar2); // 130, -126

    return 0;
}

到此這篇關(guān)于c語(yǔ)言賦值截?cái)嗟膶?shí)現(xiàn)的文章就介紹到這了,更多相關(guān)c語(yǔ)言賦值截?cái)鄡?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • 匯編語(yǔ)言常見錯(cuò)誤信息中文注解

    匯編語(yǔ)言常見錯(cuò)誤信息中文注解

    這篇文章主要介紹了匯編語(yǔ)言常見錯(cuò)誤信息中文注解,本文收集大部分匯編中常見錯(cuò)誤信息及對(duì)應(yīng)的中文注解,需要的朋友可以參考下
    2014-09-09
  • C++ vector數(shù)組用法及解析

    C++ vector數(shù)組用法及解析

    這篇文章主要給大家分享的是C++ vector數(shù)組用法及解析,什么是什么是vector數(shù)組呢?下面文章將對(duì)打家做詳細(xì)介紹,感興趣的小伙伴可以參考一下
    2021-10-10
  • C++容器map和pair對(duì)組實(shí)例詳解

    C++容器map和pair對(duì)組實(shí)例詳解

    pair?是一種模板類,允許將兩個(gè)不同類型的值組合在一起,它由兩個(gè)數(shù)據(jù)成員first和second組成,分別用來保存這兩個(gè)值,這篇文章主要介紹了C++容器——map和pair對(duì)組,需要的朋友可以參考下
    2024-05-05
  • c++字符串char[]數(shù)組分割split問題

    c++字符串char[]數(shù)組分割split問題

    這篇文章主要介紹了c++字符串char[]數(shù)組分割split問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • C++ open()和read()函數(shù)使用詳解

    C++ open()和read()函數(shù)使用詳解

    這篇文章主要介紹了C++中open()和read()函數(shù)的使用方法和參數(shù),open()函數(shù)用于打開文件并返回文件描述符,read()函數(shù)用于從文件描述符中讀取數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • C++ Boost Intrusive庫(kù)示例精講

    C++ Boost Intrusive庫(kù)示例精講

    Boost是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱。Boost庫(kù)是一個(gè)可移植、提供源代碼的C++庫(kù),作為標(biāo)準(zhǔn)庫(kù)的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開發(fā)引擎之一,是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱
    2022-11-11
  • C++實(shí)現(xiàn)路口交通燈模擬系統(tǒng)

    C++實(shí)現(xiàn)路口交通燈模擬系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)路口交通燈模擬系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++實(shí)現(xiàn)圖片jpg格式變成16位565bmp格式

    C++實(shí)現(xiàn)圖片jpg格式變成16位565bmp格式

    這篇文章主要為大家詳細(xì)介紹了C++如何實(shí)現(xiàn)圖片jpg格式變成16位565bmp格式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2025-03-03
  • C語(yǔ)言 數(shù)組指針詳解及示例代碼

    C語(yǔ)言 數(shù)組指針詳解及示例代碼

    本文主要介紹C語(yǔ)言 數(shù)組指針,這里整理了相關(guān)資料并附示例待會(huì)及實(shí)現(xiàn)結(jié)果,幫助大家學(xué)習(xí)C語(yǔ)言中指針的知識(shí),有需要學(xué)習(xí)此部分內(nèi)容的朋友可以參考下
    2016-08-08
  • c++ 求數(shù)組最大最小值函數(shù)的實(shí)現(xiàn)

    c++ 求數(shù)組最大最小值函數(shù)的實(shí)現(xiàn)

    這篇文章主要介紹了c++ 求數(shù)組最大最小值函數(shù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評(píng)論