色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Arithmetic overflow(算術(shù)溢出)信息是什么意思

麥辣雞腿堡 ? 來(lái)源:Microchip微芯 ? 作者:Microchip微芯 ? 2023-01-22 19:42 ? 次閱讀

(1)問:如果我給一個(gè)int整形賦值0xFFFF,我得到一個(gè)信息"arithmetic overflow in constant expression"(常數(shù)表達(dá)式里算術(shù)溢出)。為什么編譯器不是把它當(dāng)做-1呢?

答:作為一個(gè)int整形,這個(gè)變量值的范圍只能是從-32768到32767。0xFFFF的值是等于65535,所以太大了。如果你確實(shí)不想使用有符號(hào)的值,可以使用unsigned int,或者直接使用-1或者~0。
一般來(lái)說,如果你想要一個(gè)所有位都為1的值,并且你不想指定它總共有多少位的話,使用~0是個(gè)好的選擇,例如:

OnLimit = ~0;

它將分配一個(gè)所有位都為1的值給這個(gè)變量,對(duì)于16位的int,這個(gè)值是0xFFFF(或-1)。

下面這個(gè)宏

#define ALL_BITS_SET (~0)

也可以很有用處。

(2)問:下面這些定義

#define XTAL 8000000
#define BEEP_FREQ 3200
#define BEEP_TIME XTAL/(64*BEEP_FREQ)-1 // = 38.0625

當(dāng)我把BEEP_TIME賦給一個(gè)unsigned char時(shí),上面這些也會(huì)給我"arithmetic overflow"的信息,而這個(gè)表達(dá)式計(jì)算的結(jié)果肯定是符合unsigned char的大小的。這究竟是怎么回事?

答:你需要確保在整個(gè)算術(shù)表達(dá)式里都是使用long型計(jì)算的。8000000是會(huì)自動(dòng)地變成long型數(shù)據(jù),但是3200和64并不是,所以64*3200是被編譯器評(píng)估為int型的長(zhǎng)度,于是就發(fā)生算術(shù)溢出。使用一個(gè)'L'后綴可以強(qiáng)制為long型計(jì)算,例如:

#define BEEP_TIME XTAL/(64L*BEEP_FREQ)-1 // = 38.0625

注意這個(gè)'L'是附在64上——這使得它變成一個(gè)long型數(shù)據(jù),然后64L*3200被評(píng)估下來(lái)就會(huì)按照32位長(zhǎng)度來(lái)計(jì)算。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    805

    瀏覽量

    31163
  • 算術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    7372
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Embedded Studio堆棧溢出預(yù)防功能

    為了識(shí)別運(yùn)行的嵌入式系統(tǒng)中的堆棧溢出問題,SEGGER編譯器通過為每個(gè)函數(shù)生成檢測(cè)代碼的方式來(lái)檢查堆棧溢出。該功能可以使用命令行開關(guān)-mstack-overflow-check來(lái)使能。對(duì)于安全系統(tǒng),必須在
    發(fā)表于 07-14 11:08 ?608次閱讀

    當(dāng)算術(shù)運(yùn)算期間發(fā)生除以零或下溢/溢出時(shí),ARM926EJ-S內(nèi)核的行為是什么?

    當(dāng)算術(shù)運(yùn)算期間發(fā)生除以零或下溢/溢出時(shí),ARM926EJ-S 內(nèi)核的行為是什么。 我知道有些架構(gòu)已經(jīng)定義了行為,或者可以將其配置為觸發(fā)中斷以響應(yīng)其中一個(gè)算術(shù)異常。 該處理器是否具有在運(yùn)行時(shí)檢測(cè)其中一種情況的功能?
    發(fā)表于 02-22 07:35

    FPGA基礎(chǔ)學(xué)習(xí)筆記--組合邏輯電路-算術(shù)運(yùn)算電路

    `FPGA基礎(chǔ)學(xué)習(xí)筆記--組合邏輯電路-算術(shù)運(yùn)算電路+、-、*、/、%電路(1)加法電路:每1位大約消耗1個(gè)LE,示例代碼如下module arithmetic (input [7:0] iA
    發(fā)表于 02-23 16:45

    6678:sy***ios創(chuàng)建task時(shí)stack 溢出

    大師們,我遇到關(guān)于創(chuàng)建task時(shí)stack溢出。其條件如下:設(shè)置heapMemPArams.sizee為128MB,位置在DDR3中。在創(chuàng)建幾次task后systembios內(nèi)核就崩潰。打印如下信息
    發(fā)表于 06-21 08:43

    警告:(751)再次以常量表達(dá)式運(yùn)算溢出

    您好,我在用PIC18F開發(fā)警告時(shí)發(fā)現(xiàn)這個(gè)討厭的警告:(751)在訪問一個(gè)比特字段的數(shù)據(jù)時(shí),在常量表達(dá)式中溢出算術(shù)。我已經(jīng)閱讀了許多關(guān)于這個(gè)運(yùn)算出現(xiàn)的線索,而不是關(guān)于移位操作出現(xiàn)的事實(shí)。我的代碼我
    發(fā)表于 09-26 17:24

    警告:(751)常量表達(dá)式中的算術(shù)溢出

    嗨,那里。當(dāng)我編譯這個(gè)項(xiàng)目時(shí),我遇到了這個(gè)警告。這里是我的代碼:警告顯示:困難。C:53:警告:(751)常數(shù)表達(dá)式中的算術(shù)溢出,然后我看了XC8編譯器用戶指南,并說:這個(gè)警告也可以由中間值溢出觸發(fā)
    發(fā)表于 11-20 15:25

    如何評(píng)估HDL代碼的標(biāo)量以進(jìn)行算術(shù)描述

    如何評(píng)估和計(jì)算算術(shù)描述的HDL代碼標(biāo)量(可能是偽代碼或某些C源代碼),以及設(shè)計(jì)工作量?謝謝。 利達(dá)以上來(lái)自于谷歌翻譯以下為原文How to evaluate and calculate
    發(fā)表于 01-10 10:54

    VHDL Library of Arithmetic Uni

    VHDL Library of Arithmetic Units A comprehensive library of arithmetic units written
    發(fā)表于 06-14 09:08 ?26次下載

    VHDL Library of Arithmetic Uni

    VHDL Library of Arithmetic Units fdl A comprehensive library of arithmetic units written
    發(fā)表于 06-14 09:09 ?17次下載

    溢出,溢出的檢測(cè)方法有哪些?

    溢出,溢出的檢測(cè)方法有哪些?    在定點(diǎn)小數(shù)機(jī)器中,數(shù)的表示范圍為|x|
    發(fā)表于 04-13 11:02 ?1.2w次閱讀

    80X86指令系統(tǒng)-算術(shù)運(yùn)算指令總結(jié)的詳細(xì)資料概述免費(fèi)下載

    算術(shù)運(yùn)算指令(Arithmetic)8086/8088提供加、減、乘、除算術(shù)操作; 特點(diǎn):大部分都影響標(biāo)志位,不同指令影響不同:(1) 加、減法指令影響 SF,ZF,AF,PF,CF,OF;(2
    發(fā)表于 09-05 15:12 ?0次下載
    80X86指令系統(tǒng)-<b class='flag-5'>算術(shù)</b>運(yùn)算指令總結(jié)的詳細(xì)資料概述免費(fèi)下載

    如何防止算術(shù)運(yùn)算出現(xiàn)下溢和溢出錯(cuò)誤

    。 Solidity支持有符號(hào)整數(shù)和無(wú)符號(hào)整數(shù)uint,最高可達(dá)256位。 這意味著當(dāng)您的數(shù)字超過在分配的存儲(chǔ)位之下或之上時(shí),您的算術(shù)運(yùn)算容易出現(xiàn)下溢和溢出錯(cuò)誤。
    發(fā)表于 07-05 10:59 ?4500次閱讀

    堆棧溢出定義和處理方式

    顧名思義,stack overflow 就是是棧溢出了。在進(jìn)行數(shù)值運(yùn)算時(shí),我們常常要和運(yùn)算結(jié)果的溢出打交道。數(shù)值運(yùn)算結(jié)果可能上溢(overflow),也可能是下溢(underflow)
    的頭像 發(fā)表于 06-10 16:46 ?4436次閱讀

    java內(nèi)存溢出排查方法

    Java內(nèi)存溢出(Memory overflow)是指Java虛擬機(jī)(JVM)中的堆內(nèi)存無(wú)法滿足對(duì)象分配的需求,導(dǎo)致程序拋出OutOfMemoryError異常。內(nèi)存溢出是Java開發(fā)
    的頭像 發(fā)表于 11-23 14:46 ?3218次閱讀

    內(nèi)存溢出與內(nèi)存泄漏:定義、區(qū)別與解決方案

    與區(qū)別 1. 定義: 內(nèi)存溢出(Memory Overflow)指的是程序在申請(qǐng)內(nèi)存時(shí),無(wú)法獲得足夠的內(nèi)存空間,導(dǎo)致程序拋出異常或崩潰。當(dāng)程序需要的內(nèi)存超過了當(dāng)前可用的內(nèi)存時(shí),就會(huì)發(fā)生內(nèi)存溢出。 2. 區(qū)別: 內(nèi)存
    的頭像 發(fā)表于 12-19 14:10 ?2729次閱讀
    主站蜘蛛池模板: 四虎影视永久无码精品| 中文无码有码亚洲 欧美| 99精彩免费观看| 国产人妻人伦精品98| 欧美高清另类video| 亚洲免费无l码中文在线视频| 边吃胸边膜下床震免费版视频| 久久精品国产亚洲AV忘忧草蜜臀| 入室强伦女教师被学生| 91久久偷偷看嫩草影院无费| 國產麻豆AVMDXMDX| 色欲久久精品AV无码| CHINA学生白嫩| 久久伊人男人的天堂网站| 亚洲国产精品一区二区久久第 | 女人张开腿让男人桶爽免| 亚洲欧美自拍清纯中文字幕| 国产成人精品免费视频大全可播放的 | 乱精品一区字幕二区| 亚洲精品久久久午夜福利电影网| 丰满艳妇亲伦| 人曽交Z00Z0OA片| 99久久蜜臀亚洲AV无码精品| 久久久精品3d动漫一区二区三区| 性888xxxx入欧美| 国产AV精品国语对白国产| 日本美国群交P片内射捆绑| 99蜜桃在线观看免费视频网站 | 中文字幕一区中文亚洲| 精品国产中文字幕在线视频| 午夜性伦鲁啊鲁免费视频| 国产91综合| 肉小说高h| 丰满的美女射精动态图| 日韩免费一区二区三区在线| ⅹxx日本护土| 男人的天堂黄色| 91区国产福利在线观看午夜| 迈开腿让我看下你的小草莓声音| 永久精品视频无码一区| 久久精品手机观看|