A. 一個位元組可以表示的最大數是多少
一個位元組可以表示的最大值127,最小值-128。
位元組(Byte /t/ n. [C])是計算機信息技術用於計量存儲容量的一種計量單位,通常情況下一位元組等於八位,也表示一些計算機編程語言中的數據類型和語言字元。
字元和位元組換算:
1、UTF-8編碼:一個英文字元等於一個位元組,一個中文(含繁體)等於三個位元組。中文標點佔三個位元組,英文標點佔一個位元組。
2、Unicode編碼:一個英文等於兩個位元組,一個中文(含繁體)等於兩個位元組。中文標點占兩個位元組,英文標點占兩個位元組。
(1)三個位元組存儲整數擴展閱讀:
一、概念辨析
1、字長
計算機的每個字所包含的位數稱為字長。根據計算機的不同,字長有固定的和可變的兩種。固定字長,即字長度不論什麼情況都是固定不變的;可變字長,則在一定范圍內,其長度是可變的。
計算的字長是指它一次可處理的二進制數字的數目。計算機處理數據的速率,自然和它一次能加工的位數以及進行運算的快慢有關。如果一台計算機的字長是另一台計算機的兩倍,即使兩台計算機的速度相同,在相同的時間內,前者能做的工作是後者的兩倍。
一般地,大型計算機的字長為32-64位,小型計算機為12-32位,而微型計算機為4-16位。字長是衡量計算機性能的一個重要因素。
2、位元組
位元組是指一小組相鄰的二進制數碼。通常是8位作為一個位元組。它是構成信息的一個小單位,並作為一個整體來參加操作,比字小,是構成字的單位。
在微型計算機中,通常用多少位元組來表示存儲器的存儲容量。例如,在C++的數據類型表示中,通常char為1個位元組,int為4個位元組,double為8個位元組。
二、數據類型
Byte數據類型(位元組型)用一個位元組(Byte)儲存,可區別256個數字,取值范圍:0到255。 Byte是從0-255的無符號類型,所以不能表示負數。具體參照數據類型。
B. 一條指令有三個位元組,一個位元組佔一個存儲單元,一條指令只給一個地址,那兩個位元組的地址是如何形成的。
對於所有整數在內存中都是以整數的補碼形式存在,2個位元組是2*8=16位,而位是用0或1表示的,自己畫16個空格,如果是最大正整數的話,開頭第一位必須是符號位0,然後後面的15位都是1,所以表示的最大十進制整數是32767,如果是最小負整數的話,開頭第一位必須是符號位1,另外要記住這樣一個關系原碼=補碼取反-1(這里的取反包含符號位,這里舉個例子求補碼為11111010的十進制整數,先對其補碼取反的00000101,算的的結果為5,因為補碼的最高位是1可以斷定該數為負數,所以結果為-5再減1得,-6),因為最高位為1已經定下來啦,所以要使原碼最大,則補碼取反必須最大,則補碼必須最小,則後面的15位都為0,所以補碼必須為1000000000000000,通過剛才的方法先求反得0111111111111111,得到的整數為32767,因為補碼的最高位是1可以斷定該數為負數,所以結果為-32767,再減1得-32768.。這個還是比較繞人,自己再好好想想吧~~~
C. 一個數字等於多少個位元組
一個數字是一個位元組。
位元組的標準定義:一個位元組均為8位。由於上述所講每個位或者是0或者是1,所以一個8位的位元組包含256種可能的0,1組合。
整數要根據類型,一般是極其的字長。比如16位機整數就是16位Bit,兩個位元組。32位機就是4位元組。還有int64類型的整數。
至於實數在C中,有32位(float)和64位(double)之分。其他語言中有類型80位的,叫擴展精度實數.主要是在cpu內部的擴展精度實數寄存器,是80位的。保證在double實數運算是不損失精度。
(3)三個位元組存儲整數擴展閱讀:
字元與位元組
ASCII碼:一個英文字母(不分大小寫)佔一個位元組的空間,一個中文漢字占兩個位元組的空間。一個二進制數字序列,在計算機中作為一個數字單元,一般為8位二進制數,換算為十進制。最小值-128,最大值127。如一個ASCII碼就是一個位元組。
UTF-8編碼:一個英文字元等於一個位元組,一個中文(含繁體)等於三個位元組。中文標點佔三個位元組,英文標點佔一個位元組
Unicode編碼:一個英文等於兩個位元組,一個中文(含繁體)等於兩個位元組。中文標點占兩個位元組,英文標點占兩個位元組
數據存儲是以「位元組」(Byte)為單位,數據傳輸大多是以「位」(bit,又名「比特」)為單位,一個位就代表一個0或1(即二進制),每8個位(bit,簡寫為b)組成一個位元組(Byte,簡寫為B),是最小一級的信息單位。
硬碟生產商是以GB(十進制,即10的3次方=1000,如1MB=1000KB)計算的,而電腦(操作系統)是以GiB(2進制,即2的10次方, 如1MiB=1024KiB)計算的,但是國內用戶一般理解為1MiB=1M=1024 KB, 所以為了便於中文化的理解,翻譯MiB為MB也是可以的。
同樣根據硬碟廠商與用戶對於1MB大小的不同理解,所以好多160G的硬碟實際容量按計算機實際的1MiB=1024KB算都不到160G,這也可以解釋為什麼新買的硬碟「缺斤短兩」並沒有它所標示的那麼大。
數據類型
Byte數據類型(位元組型)用一個位元組(Byte)儲存,可區別256個數字,取值范圍:0到255。 Byte是從0-255的無符號類型,所以不能表示負數。具體參照數據類型。
在計算機中,一串數碼作為一個整體來處理或運算的,稱為一個計算機字,簡稱字。字通常分為若干個位元組(每個位元組一般是8位)。在存儲器中,通常每個單元存儲一個字,因此每個字都是可以定址的。字的長度用位數來表示。
在計算機的運算器、控制器中,通常都是以字為單位進行傳送的。字出現在不同的地址其含義是不相同。例如,送往控制器去的字是指令,而送往運算器去的字就是一個數。
字長
計算機的每個字所包含的位數稱為字長。根據計算機的不同,字長有固定的和可變的兩種。固定字長,即字長度不論什麼情況都是固定不變的;可變字長,則在一定范圍內,其長度是可變的。
計算的字長是指它一次可處理的二進制數字的數目。計算機處理數據的速率,自然和它一次能加工的位數以及進行運算的快慢有關。如果一台計算機的字長是另一台計算機的兩倍,即使兩台計算機的速度相同,在相同的時間內,前者能做的工作是後者的兩倍。
一般地,大型計算機的字長為32-64位,小型計算機為12-32位,而微型計算機為4-16位。字長是衡量計算機性能的一個重要因素。
位元組
位元組是指一小組相鄰的二進制數碼。通常是8位作為一個位元組。它是構成信息的一個小單位,並作為一個整體來參加操作,比字小,是構成字的單位。
在微型計算機中,通常用多少位元組來表示存儲器的存儲容量。
例如,在C++的數據類型表示中,通常char為1個位元組,int為4個位元組,double為8個位元組。
理解編碼的關鍵,是要把字元的概念和位元組的概念理解准確。這兩個概念容易混淆,我們在此做一下區分:
概念描述 舉例
字元人們使用的記號,抽象意義上的一個符號。 '1', '中', 'a', '$', '¥' ……
位元組計算機中存儲數據的單元,一個8位的二進制數,是一個很具體的存儲空間。0x01, 0x45, 0xFA……
字元串
在內存中,如果「字元」是以ANSI編碼形式存在的,一個字元可能使用一個位元組或多個位元組來表示,那麼我們稱這種字元串為ANSI字元串或者多位元組字元串。如,"中文123" (佔8位元組,包括一個隱藏的 )。
字元集
對於ANSI編碼方式,存在不同的字元集(Charset)。同樣的位元組序列,在不同的字元集下表示的字元不一樣。要正確解析一個ANSI字元串,還要選擇正確的字元集,否則就可能導致所謂的亂碼現象。不同語言版本的操作系統,都有一個默認的字元集。
在不指定字元集的情況下,系統會使用此字元集來解析ANSI字元串。也就是說,如果我們在簡體中文版的Windows下打開了一個由日文操作系統保存的ANSI文本文件(僅包含ANSI字元串的文本文件),我們看到的將是亂碼。
但是,如果我們使用Visual Studio之類的帶編碼選擇的文本編輯器打開此文件,並且選擇正確的字元集,我們將可以看到它的原貌。注意:簡體中文字元集中的繁體字和繁體中文字元集中的繁體字,編碼不一定相同(事實證明,似乎是完全不同)。
每個字元集都有一個唯一的編號,稱為代碼頁(Code Page)。簡體中文(GB2312)的代碼頁為936,而系統默認字元集的代碼頁為0,它表示根據系統的語言設置來選擇一個合適的字元集。
Unicode
字元串在內存中,如果「字元」是以在Unicode中的序號存在的,那麼我們稱這種字元串為Unicode字元串或者寬位元組字元串。在Unicode中,每個字元都占兩個位元組。如,"中文123"(佔10位元組)。
Unicode和ANSI的區別就相當於輸入法內的「全形」和「半形」的區別。
由於不同ANSI編碼所規定的標準是不相同的(字元集不同),因此,對於一個給定的多位元組字元串,我們必須知道它採用的是哪一種字元集則,才能夠知道它包含了哪些「字元」。
而對於Unicode字元串來說,不管在什麼環境下,它所代表的「字元」內容總是不變的。Unicode 有著統一的標准,它定義了世界上絕大多數的字元的編碼,使得拉丁文、數字、簡體中文、繁體中文、日文等都能以同一種編碼方式保存。
參考資料來源:網路 位元組
D. 計算機中表示整數2幾個位元組
4位元組
1個整數是4位元組。
整數類型分有符號整數和無符號整數,一個位元組是8位,就是說,一個有符號整數,能表示整數大小的是7位,就是-128到127,就算是無符號的,也就是0到255,那麼小的范圍怎麼能表示現在那麼大的數據量?是4位元組沒錯的,4位元組是32位,就是現在一般的系統的匯流排寬度,也就是內存地址檢索范圍,所以現在的一個int類型可以表達的整數范圍有-(2的31次方)到2的31次方-1個這么大范圍
E. C語言怎麼讀取3個位元組的整型數據
int 佔4個位元組
用int 存三個位元組足夠了。
所以 就用int讀 沒任何問題。
scanf("%d",&n); 這樣就可以了。
如果指的是輸入的數字是三位 那麼用
scanf("%3d",&n);
F. 匯編:已知有一個長度為3位元組的字元串str,將該字元串轉化為相應的整數,並存儲與.data 段中的number中
input a line of numeric character:321
#include <stdio.h>
long cton(void)
{ char c;
long s=0;
c=getchar();
while(c>='0'&&c<='9')
{
s=s*10+c-'0';
c=getchar(); /*少一條語句,所以陷入死循環了*/
}
return (s);
}
void main()
{ printf("input a line of numeric character:");
printf("%ld\n",cton());
}
現在你可以試試,只要最後一個輸入字元不是數字就可以退出並顯示數字了
G. 一個位元組可以存儲多大的數字
一個位元組有8位,每一位兩種狀態1或者0
計算機儲存數據是以二進制的方式,有一位為符號位,所以最大數為01111111轉化為十進制數為127。
若無符號,最大數為11111111轉化為十進制為255。
二進制,是計算技術中廣泛採用的一種數制,由德國數理哲學大師萊布尼茨於1679年發明。二進制數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是「逢二進一」,借位規則是「借一當二」。
當前的計算機系統使用的基本上是二進制系統,數據在計算機中主要是以補碼的形式存儲的。計算機中的二進制則是一個非常微小的開關,用「開」來表示1,「關」來表示0。
(7)三個位元組存儲整數擴展閱讀:
與十進制
1,二進制轉十進制
方法:「按權展開求和」。
2,十進制整數轉二進制數:「除以2取余,逆序排列」(除二取余法)
3,十進制負數轉二進制:「先取正數的二進制值,再取反,加1」。
與八進制
二進制數轉換成八進制數:從小數點開始,整數部分向左、小數部分向右,每3位為一組用一位八進制數的數字表示,不足3位的要用「0」補足3位,就得到一個八進制數。
八進制數轉換成二進制數:把每一個八進制數轉換成3位的二進制數,就得到一個二進制數。
與十六進制
二進制數轉換成十六進制數:二進制數轉換成十六進制數時,只要從小數點位置開始,向左或向右每四位二進制劃分一組(不足四位數可補0),然後寫出每一組二進制數所對應的十六進制數碼即可。
十六進制數轉換成二進制數:把每一個十六進制數轉換成4位的二進制數,就得到一個二進制數。
參考資料來源:網路-二進制
H. 如果有3個位元組的存儲空間,當最高位表示符號位時,則表示整數數據的范圍是________;
「證書」數據,整數數據,下次請打對中文啊
3 個byte,有效位3*8=24bits,
當最高位表示符號位時,則表示整數數據的范圍是________;
===
24減去符號位23位,范圍為「正負2的23次方-1」,即區間范圍[-8388607,8388607]
當最高位表示數值位時,則表示的范圍是__________.
范圍為"2的24次方-1",區間[ 0, 16777215]
I. 怎樣用三個位元組表示兩個一百以內的數
short a,b,c;long z;
0<a<100,0<b<100,0<c<999;
c=~~~
是逐位相加啊,暈,看錯,那怎麼編
要編游戲么,還是換個公式吧