1. 請問如何用c語言實現漢字,和Unicode編碼的轉換
字轉換:wctomb、mbtowc,wc 指 Wide charactor,mb 指 Multi-byte。
字元串轉換:wcstombs、mbstowcs,wcs 和 mbs 的 s 指 string。
這 4 個函數是 C 標准函數庫函數中的。如果只是在 Windows 平台下編程,可直接調用 Windows API 函數 WideCharToMultiByte 和 MultiByteToWideChar 實現。但是如果調用標准庫函數的話,在 Linux 下也是有效的。調用標准庫函數,首先必須包含 locale.h 並調用 setlocale(LC_ALL, "") 後才能正確轉換。Windows 下的 Multi-byte 是 ANSI 編碼的,Wide charactor 是 Unicode (UTF-16) 編碼,而 Linux 下的 Multi-byte 是 UTF-8 編碼的,Wide charactor 是 Unicode (UTF-32) 編碼。
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(void)
{
char str[12];
wchar_t wstr[] = { 0x52B3, 0x788C, 0 };
setlocale(LC_ALL, "");
wcstombs(str, wstr, sizeof(str)/sizeof(char));
printf("%s", str);
return 0;
}
2. C# FileInfo 獲取當前文件大小(length)是按位元組算的, 如何轉化成按MB算大小
1MB=1024*1024Byte
3. 系統顯示的流量單位是位元組,看起來很不方便。求一個直接把位元組轉換為以兆為單位的C語言程序源代碼。
//1G=1024MB1MB=1024K1K=1024位元組
#include<stdio.h>
intmain()
{
floatk;
printf("請輸入流量(位元組): ");
scanf("%f",&k);
printf("流量實際為%0.2fMB ",k/1024.0/1024.0);//真實的是1024進制
return0;
}
生活中商家都是按1000進制忽悠人的。比如:市面上賣的8G的U盤什麼的是按1000進制宣傳的,你自己用1024進制(8*1000/1024)算算就可以發現為什麼買不到與標稱相符容量的U盤了。
運行截圖:
4. 位元組和MB的換算
1MB=1024KB=1048576位元組
1G=1024M=1048576KB
1TB=1024GB
1GB=1024MB
1MB=1024KB
1KB=1024Byte
1Byte=8bit
位元組:8個二進制位構成1個"位元組(Byte)",它是存儲空間的基本計量單位。1個位元組可以儲存1個英文字母或者半個漢字,換句話說,1個漢字占據2個位元組的存儲空間。
(4)c語言位元組轉為mb擴展閱讀
計量單位
1立方米(m³)=1000升(liter)= 1000立方分米(dm³)
1立方分米=1000立方厘米
1立方厘米=1000立方毫米
英美式計量單位
1立方英尺(ft³)= 0.0283立方米(m³)= 28.317升(liter)
1千立方英尺(mcf)= 28.317立方米(m³)
1百萬立方英尺(MMcf)=2.8317萬立方米(m³)
10億立方英尺(bcf)= 2831.7萬立方米(m³)
1萬億立方英尺(tcf)= 283.17億立方米(m³)
1立方英寸(in³)= 16.3871立方厘米(cm³)
1英畝·英尺=1234立方米(m³)
1桶(bbl)= 0.159立方米(m³)= 42美加侖(gal)
1美加侖(gal)= 3.785升(l)
5. 位元組、kb、mb等單位,是怎樣換算的
官方標准:
通常情況下,把B稱為位元組、b稱為字位、KB稱為千位元組、MB稱為兆位元組、GB稱為吉位元組。
1漢字=2位元組;1個英文字元=1個位元組;1位元組(Byte)=8字位=8個二進制數;1字位(bit)=1個二進制數。
1KB=1024B
1MB=1024KB
1GB=1024MB
(5)c語言位元組轉為mb擴展閱讀
1、位元組數據類型
Byte數據類型(位元組型)用一個位元組(Byte)儲存,可區別256個數字,取值范圍:0到255。 Byte是從0-255的無符號類型,所以不能表示負數。
2、位元組語言字元
效果等同於 unsigned char型,typedef unsigned char BYTE,定義一種新類型BYTE,它其實就是unsigned char,在VC++中,byte型數據的定義包含在windows.h頭文件中,調用byte需要添加代碼#include <windows.h>。
而在java中,byte是一個關鍵字,表示聲明了一個整形常量在內容中佔用一個位元組,取值范圍是-128~127
6. 位元組和兆怎麼換算
ASCII碼:一個英文字母(不分大小寫)佔一個位元組的空間,一個中文漢字占兩個位元組的空間。一個二進制數字序列,在計算機中作為一個數字單元,一般為8位二進制數,換算為十進制。最小值0,最大值255。如一個ASCII碼就是一個位元組。
UTF-8編碼:一個英文字元等於一個位元組,一個中文(含繁體)等於三個位元組。
Unicode編碼:一個英文等於兩個位元組,一個中文(含繁體)等於兩個位元組。
符號:英文標點佔一個位元組,中文標點占兩個位元組。舉例:英文句號「.」佔1個位元組的大小,中文句號「。」佔2個位元組的大小。 數據存儲是以10進製表示,數據傳輸是以2進製表示的,所以1KB不等於1000B。
1KB=1024B;1MB=1024KB=1024×1024B。其中1024=210。
1B(byte,位元組)= 8 bit(見下文);
1KB(Kibibyte,千位元組)=1024B= 2^10 B;
1MB(Mebibyte,兆位元組,百萬位元組,簡稱「兆」)=1024KB= 2^20 B;
1GB(Gigabyte,吉位元組,十億位元組,又稱「千兆」)=1024MB= 2^30 B;
1TB(Terabyte,萬億位元組,太位元組)=1024GB= 2^40 B;
1PB(Petabyte,千萬億位元組,拍位元組)=1024TB= 2^50 B;
1EB(Exabyte,百億億位元組,艾位元組)=1024PB= 2^60 B;
1ZB(Zettabyte,十萬億億位元組,澤位元組)= 1024EB= 2^70 B;
1YB(Yottabyte,一億億億位元組,堯位元組)= 1024ZB= 2^80 B;
1BB(Brontobyte,一千億億億位元組)= 1024YB= 2^90 B;
1NB(NonaByte,一百萬億億億位元組) = 1024 BB = 2^100 B;
1DB(DoggaByte,十億億億億位元組) = 1024 NB = 2^110 B; 以下以Visual Basic為例,講解各種數據類型所佔位元組。 數據類型儲存空間大小(單位:位元組)范圍Byte(位元組型)10 - 255Boolean(布爾型/邏輯型)2True 或 FalseInteger(整數型)2-32,768 ~ 32767Long(長整形) 4-2,147,483,648 ~ 2,147,483,647Single
(單精度浮點型) 4負數范圍:
-3.402823E38 ~ -1.401298E-45
正數范圍:
1.401298E-45 ~ 3.402823E38 Double
(雙精度浮點型) 8負數范圍:
-1.797,693,134,862,32E308 ~
-4.940,656,458,412,47E-324
正數范圍:
4.940,656,458,412,47E-324 ~
1.797,693,134,862,32E308 Currency
(變比整形 / 貨幣類型) 8-922,337,203,685,477.5808 ~
922,337,203,685,477.5807 Decimal(十進制型)14沒有小數點時:
+/-79,228,162,514,264,337,593,543,950,335
有小數點時:
+/-7.922,816,251,426,433,759,354,395,033,5
最小的非零值:
+/-0.000,000,000,000,000,000,000,000,000,1 Date(時間日期型)8100 年 1 月 1 日 ~ 9999 年 12 月 31 日Object(對象型)4任何 Object 引用String (變長)10長度從 0 到 大約 20 億String (定長)10長度從 1 到大約 65,400Variant (數字)16任何數字值,最大可達 Double 的范圍Variant (字元)22與字元串長度,變長 String 有相同的范圍用戶自定義變數--任何數據類型的數組都需要 20 個位元組的內存空間,加上每一數組維數占 4 個位元組,再加上數據本身所佔用的空間。數據所佔用的內存空間可以用數據元數目乘上每個元素的大小加以計算。例如,以 4 個 2位元組之 Integer 數據元所組成的一維數組中的數據,占 8 個位元組。這 8 個位元組加上額外的 24 個位元組,使得這個數組所需總內存空間為 32 個位元組。
包含一數組的 Variant 比單獨的一個數組需要多 12 個位元組。
7. 位元組、KB、MB、GB 之間的換算關系
數據存儲以10進製表示:
1B(byte,位元組)= 8 bit(見下文);
1KB(Kilobyte,千位元組)=1000B= 10^3 B;
1MB(Megabyte,兆位元組,百萬位元組,簡稱「兆」)=1000KB= 10^6 B;
1GB(Gigabyte,吉位元組,十億位元組,又稱「千兆」)=1000MB= 10^9 B。
數據傳輸以2進製表示:
1B(byte,位元組)= 8 bit(見下文);
1KiB(Kibibyte,千位元組)=1024B= 2^10 B;
1MiB(Mebibyte,兆位元組,百萬位元組,簡稱「兆」)=1024KB= 2^20 B;
1GiB(Gibibyte,吉位元組,十億位元組,又稱「千兆」)=1024MB= 2^30 B。
(7)c語言位元組轉為mb擴展閱讀:
位元組相關單位:
B與bit
數據存儲是以「位元組」(Byte)為單位,數據傳輸大多是以「位」(bit,又名「比特」)為單位,一個位就代表一個0或1(即二進制),每8個位(bit,簡寫為b)組成一個位元組(Byte,簡寫為B),是最小一級的信息單位。
B與iB
1KiB(Kibibyte)=1024byte
1KB(Kilobyte)=1000byte
1MiB(Mebibyte)=1048576byte
1MB(Megabyte)=1000000byte
硬碟生產商是以GB(十進制,即10的3次方=1000,如1MB=1000KB)計算的,而電腦(操作系統)是以GiB(2進制,即2的10次方, 如1MiB=1024KiB)計算的,但是國內用戶一般理解為1MiB=1M=1024 KB, 所以為了便於中文化的理解,翻譯MiB為MB也是可以的。
8. Mb與Kb和位元組之間的換算關系是什麼
1Mb=1024Kb,1kb=1024b。1Mb=1024×1024b=1048567b。
千位元組(Kbytes),計算機存儲容量單位,也常用KB來表示。1KB=1024位元組。
位元組(Byte)是計算機信息技術用於計量存儲容量的一種計量單位,通常情況下一位元組等於八位,也表示一些計算機編程語言中的數據類型和語言字元。
MB(全稱MByte):計算機中的一種儲存單位,讀作「兆」。MByte含義是「兆位元組」。
(8)c語言位元組轉為mb擴展閱讀:
其他存儲單位之間的轉換:
(1)1GB(Gigabyte,吉位元組)=1024MB= 10^9 B。
(2)1TB(Terabyte,太位元組)=1024GB= 10^12 B。
(3)1PB(Petabyte,千萬億位元組,拍位元組)=1024TB= 10^15 B。
(4)1EB(Exabyte,百億億位元組,艾位元組)=1024PB= 10^18 B。
(5)1ZB(Zettabyte,十萬億億位元組,澤位元組)=1024EB= 10^21 B。