Ⅰ C語言如何實現整形轉換成字元型然後賦值到字元數組
a=12345678 為int型,在內存中佔4位元組,共32位,即為 00000000 10111100 01100001 01001110
將a右移24位即取出前8位,第一個位元組;內
將a右移16位,然後位與容00000000 11111111 即0xff,即可取出第二個位元組;
將a右移8位,然後位與00000000 00000000 11111111 即0xff,即可取出第三個位元組;
將a位與00000000 00000000 00000000 11111111 即0xff,即可取出第四個位元組。
#include <stdio.h>
int main(void)
{
int a = 120;
char b[4];
b[0] = a >> 24;
b[1] = ((a >> 16) & 0xff);
b[2] = ((a >> 8) & 0xff);
b[3] = a & 0xff;
return 0;
}
Ⅱ c語言中,整型賦予字元型,只把低八位賦予字元量是怎麼回事
一個整形佔用4個位元組,
一個字元是一個位元組,
賦值時,
值付給低位元組(低8位)
這是很正常的.
一般來說賦值前最好將這個整數值0.
Ⅲ C語言中 可以直接整形數賦給字元型么
實際上在C語言中,兩者大部分的時候可以通用。
字元型在電腦中的版存儲就是其ASCII碼
3+『權0』 在電腦中存儲的數值為51,如果你以字元的形式顯示出來,他就是
字元『3』,如果你把他作為一個整數,他就是51
所以,就看你是利用字元還是用作整數計算。
Ⅳ 為什麼整型可以賦給字元數組例下:
為方便起見,我們假設int型2位元組,0的二進制位就是00000000 00000000。整型賦值給字元型就是把後8位原封專不動的賦值給字元型。屬x[0]就就相當於『0』、『\0』,也就是平常說的空字元null。數組char x[ ]剛開始的時候賦值就已經確定了它的儲存空間(如果未指定數組大小,且有初始化,那就已經確定儲存空間了),因而sizeof()算出的位元組是7。strlen函數是遇到第一空字元就結束,然後結果當然就是0了。
Ⅳ 整形變數、實型變數、變數賦值、字元變數在語句中怎麼用呢
在C++語言中,「=」作為賦值運算符,而不表示「等於」判斷。賦值語句是由賦值表達式再加上分號構成的表達式語句,它是程序中使用最多的語句之一。
變數=表達式;
在賦值語句的使用中,需要注意以下幾點:
1)由於賦值運算符「=」右邊的表達式也可以是賦值表達式,因此,下述形式 :
變數=(變數=表達式);
是成立的,從而形成嵌套的情形。其展開之後的一般形式為:
變數=變數=…=表達式;
例如,「a=b=c=d=e=5;」,它實際上等價於:e=5;d=e;c=d;b=c;a=b;
2)在進行賦值運算時,如果賦值運算符兩邊的數據類型不同,系統將會自動進行類型轉換,即將賦值運算符右邊的數據類型轉換成左邊的變數類型。當左邊是整型而右邊是實型時,將去掉小數部分並截取該整型對應的有效位數。
例2.1輸入兩個正整數A和B,試交換A、B的值(使A的值等於B,B的值等於A)。
【分析】 交換兩個變數的值方法很多,一般我們採用引入第三個變數的演算法,二個變數交換,可以想像成一瓶醬油和一瓶醋進行交換,這時容易想到拿一個空瓶子過來:
① 將醬油倒到空瓶中;② 將醋倒到醬油瓶中;③ 將原空瓶中的醬油倒到醋瓶中。
程序如下:
#include<iostream> //使用cin,cout,須調用iostream庫
using namespace std;
int main()
{ int a,b,c; //定義三個變數
cout<<"Input a,b="; //輸入提示Input a,b=
cin>>a>>b; //輸入A、B的值
c=a; a=b; b=c; //交換A、B的值
cout<<"a="<<a<<" b="<<b<<endl; //輸出結果
}
例2.2 圓柱體的表面積
輸入底面半徑r和高h,輸出圓柱體的表面積,保留3位小數,格式見樣例。
樣例輸入:3.5 9 樣例輸出:274.889
【分析】
圓柱體的表面積由3部分組成:上底面積、下底面積和側面積。由於上下底面積相等,完整的公式可以寫成:表面積=底面積*2+側面積。根據平面幾何知識,底面積=πR2,側面積=2πrh。參考程序:
#include<cstdio> //使用printf和scanf, 須調用cstdio庫
#include<cmath> //使用數學函數atan,須調用cmath庫
using namespace std; //在這個程序中可以省略這行
int main()
{ const double pi=3.1415926; //定義pi為常量
double r,h,s1,s2,s; //定義雙精度實型,float為單精度實型
scanf("%lf%lf",&r,&h); //r和h前的&符號不能漏掉,double型用%lf
s1=pi*r*r; //計算底面積
s2=2*pi*r*h; //計算側面積
s=2*s1+s2; //計算總的表面積
printf("Area=%0.3lf\n",s); //輸出結果保留3位小數,注意用lf格式
return 0;
}
例2.3 數學中經典的「雞兔同籠」問題,已知頭共30個,腳共90隻,問籠中的雞和兔各有多少只?
【分析】 設雞為j只,兔為t只,頭為h,腳為f,那麼有:
j+t=30 ①
2*j+4*t=90 ②
假設籠中30 個頭全都是兔,那麼都按每頭4隻腳計算,總腳數為(4*h),與實際腳數(f )之差為(4*h-f),如果這個差=0,則籠中全是兔(即雞為0隻);如果這個差值 >0,說明多計算了腳數,凡是雞都多計算了兩只腳,用它除以2就能得到雞的只數,演算法為:① j=(4*h - f)/2 //先用腳數差值除以2算出雞的只數
② t=h - j //再用總頭數減雞數算出免的只數
注意這兩步運算的先後順序。程序如下:
#include<cstdio> //使用getchar()語句, 須調用cstdio庫
#include<iostream> //使用cin,cout,須調用iostream庫
using namespace std;
int main()
{ int h,f,j,t; //定個變數
h=30;f=90; //賦初始值
j=(4*h-f)/2; //計算雞的只數
t=h-j; //計算免的只數
cout<<"j="<<j<<" t="<<t<<endl; //輸出結果
getchar(); //和 system("pause")作用相似,用於結果顯示暫停
}
運算符縱覽
1.算術運算符
用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求余(或稱模運算,%)、自增(++)、自減(--)共七種。
2.關系運算符
用於比較運算。包括大於(>)、小於(<)、等於(==)、大於等於(>=)、小於等於(<=)和不等於(!=)六種。
3.邏輯運算符
用於邏輯運算。包括與(&&)、或(||)、非(!)三種。
4.位操作運算符
參與運算的量,按二進制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。
5.賦值運算符
用於賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。
6.條件運算符
這是一個三目運算符,用於條件求值(?:)。
7.逗號運算符
用於把若干表達式組合成一個表達式(,)。
8.指針運算符
用於取內容(*)和取地址(&)二種運算。
9.求位元組數運算符
用於計算數據類型所佔的位元組數(sizeof)。
10.特殊運算符
有括弧(),下標[],成員(->,.)等幾種。
Ⅵ 一個整型數怎麼賦值到字元串中
C函數
atoi,將字元串轉抄成整型變數
itoa,將整型變數轉成字元型
如:
#include <iostream>
int main()
{
char chBuf[5];
int k;
k=10;
itoa(k,chBuf,10);
printf("字元串中存放值為:%s\n",chBuf);
k = atoi(chBuf);
printf("將字元串放在int變數k的值:%d \n",k);
return 0;
}
打字不易,如滿意,望採納。
Ⅶ 想請你幫我講講字元型賦予整型是怎樣的轉變謝謝!
第一種情況,給整型變數賦值字元型數據,例如
int a = 'c';
這種情況會將字元c的ASCII編碼值也就是整數99賦值回給答a
第二種情況,給字元型變數賦值整型數據,例如
char c = 99;
這種情況就是把整數99賦值給c,如果用printf("%c\n", c)來列印c的話,會得到一個字元c
最後,說明一下,字元型其實就是一個取值范圍更小的整型,它們的實質都是整數,char默認是1個位元組的整數,32位操作系統下,int是默認4個位元組的整數,就這么點區別,只不過在列印的時候%c和%d體現出來的差別有些不一樣罷了。
Ⅷ 整形數據如何給字元型變數賦值
(1)比如int為2位元組,char型為1位元組;
比如說一個16進制的int型表示 2345H,那麼整形數據的低內8位就是45H了容
(2)用代碼表示,獲得int型的低8位
#include <stdio.h>
void main()
{
int a = 0x1234;
char m;
m = (char)a; //或者這樣表示 m = ((char *)&a)[0];
printf("%x\n",m);
system("pause");
}
補充:289的2進製表示為:00000001 00100001
那麼所說的低八位就是00100001 也就是33
Ⅸ 急!整型數組賦值給字元數組的問題
你的思維比較混亂,其實很簡單:
#include<stdio.h>
#include<stdlib.h>
intmain()
{
intm2[5]={12,50,18,20,15};
charszText[20];
printf("將這些整數轉化成字元串:內 ");
for(intk=0;k<5;k++)
{
itoa(m2[k],szText,10);
printf("%s ",szText);
}
return0;
}
運行結容果如下:
Ⅹ 有符號的負整型數值賦值給無符號的整型 符號怎麼變化
有符號的負整型數值賦值給無符號的整型 符號位不變(無變化)